The color of each pixel is represented with a set of values:

• In grayscale images, each pixel can be represented by a single number, which typically ranges from 0 to 255. This value determines how dark the pixel appears (e.g., `0` is black, while `255` is bright white).
• In colored images, each pixel can be represented by a vector of three numbers (each ranging from 0 to 255) for the three primary color channels: red, green, and blue. These three red, green, and blue (RGB) values are used together to decide the color of that pixel. For example, purple might be represented as `128, 0, 128` (a mix of moderately intense red and blue, with no green).

The number of channels required to represent the color is known as the color depth or simply depth. With an RGB image`depth = 3`, because there are three channels (Red, Green, and Blue). In contrast, a grayscale image has `depth = 1`, because there is only one channel.

## Encoding an Image

Let’s now talk about how we can use this data to encode an image. We need to know the following three things about an image to reproduce it:

• Horizontal position of each pixel
• Vertical position of each pixel
• Color of each pixel

Thus, we can fully encode an image numerically by using a vector with three dimensions. The size of the vector required for any given image would be the `height * width * depth` of that image.

Image data avaliable on below link:

https://www.kaggle.com/tags/image-data