Imagine we want to do Image Processing. Images’ pixels have 3 colours, RGB. Say that the image 256x256. When processing the image, we need to take into account that distances between close pixels is much more important than between distant pixels. Can we use a MLP network?

We get a really complex network, with an excessive amount of weights, units, etc. When used on RGB images, the MLP:
How can do this better?
A Convolutional Neural Network (ConvNet/CNN) is a Deep Learning algorithm that can take in an input image, assign importance (learnable weights and biases) to various aspects/objects in the image, and be able to differentiate one from the other. The pre-processing required in a ConvNet is much lower as compared to other classification algorithms. While in primitive methods filters are hand-engineered, with enough training, ConvNets have the ability to learn these filters/characteristics.
The most important element of a CNN is the filter, also referred as kernel:

We perform element-wise multiplication (Hadamard Product) between the elements of the filter and the intensity values of the image (e.g., in the case of RGB, the color intensity between 0 and 255) and sum the result, scanning the filter over the whole image.

Note that the Kernel has the same depth as that of the input (so, for a RGB image the kernel has a depth of 3).
During training, we update the elements of the filter (i.e., the weights of the CNN). This process is known as convoluting the image.
There are two types of results to the operation — one in which the convolved feature is reduced in dimensionality as compared to the input, and the other in which the dimensionality is either increased or remains the same. This is done by applying Valid Padding in the case of the former (like the examples above), or Same Padding in the case of the latter.
Convolution filters can be applied on 3D images (e.g., considering the RGB channels as depth of 3). The filter still performs element by element multiplication and sums the result to a scalar value.

3D Convolution Filter
Similar to the Convolutional Layer, there is also a Pooling layer, is responsible for reducing the spatial size of the Convolved Feature. This is to decrease the computational power required to process the data through dimensionality reduction. The Convolutional Layer and the Pooling Layer, together form the $i$-th layer of a Convolutional Neural Network. The final CNN architecture is: