Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the need of converting an image into numpy array?

I was watching a tutorial on a facial recognition project using OpenCV,numpy, PIL. During training, the image was converted into a numpy array, what is the need of converting it into a numpy array?

THE CODE:

PIL_IMAGE = Image.open(path).convert("L")
image_array = np.array(PIL_IMAGE, "uint8")
like image 377
Anshuman Bharadwaj Avatar asked Oct 21 '25 09:10

Anshuman Bharadwaj


1 Answers

TLDR; OpenCV images are stored as three-dimensional Numpy arrays.

When you read in digital images using the library, they are represented as Numpy arrays. The rectangular shape of the array corresponds to the shape of the image. Consider this image of a chair

enter image description here

Here's a visualization of how this image is stored as a Numpy array in OpenCV

enter image description here

If we read in the image of the chair we can see how it is structured with image.shape which returns a tuple (height, width, channels). Image properties will be a tuple of the number of rows, columns, and channels if it is a colored image. If it is a grayscale image, image.shape only returns the number of rows and columns.

import cv2

image = cv2.imread("chair.jpg")
print(image.shape)

(222, 300, 3)

When working with OpenCV images, we specify the y coordinate first, then the x coordinate. Colors are stored as BGR values with blue in layer 0, green in layer 1, and red in layer 2. So for this chair image, it has a height of 222, a width of 300, and has 3 channels (meaning it is a color image). Essentially, when the library reads in any image, it stores it as a Numpy array in this format.

like image 73
nathancy Avatar answered Oct 22 '25 22:10

nathancy



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!