In this tutorial, we are going to focus on reading an image using the Python programming language. For this, we are going to use the OpenCV library. OpenCV refers to Open Source Computer Vision library aimed at computer vision and machine learning.
To use OpenCV in Python install the following libraries:
- NumPy
- OpenCV
To install the above given libraries, use the following command.
pip3 install opencv-python
pip3 install numpy
Import
Here, we are going to import all the required libraries.
import numpy as np
import cv2
cv2.imread() – Reading an Image
To read an image cv2.imread() function is used.
Syntax: cv2.imread(path, flag)
- path: The path represents the location of the image on the disk.
- flag: The flag represents the way in which the image should be read. The default value is cv2.IMREAD_COLOR.
If the path is correct then a image matrix is returned, else nothing (None) is returned.
There are three ways in an image can be read. We can use the following value for the flag parameters in the cv2.imread() function.
- cv2.IMREAD_COLOR: It is used to read the image as an RGB image. It ignores the alpha channel present in the image. It is the default value for the flag parameters. You can also specify 1 for this flag.
- cv2.IMREAD_GRAYSCALE: It is used to read the image as grayscale i.e., black and white format. You can also specify 0 for this flag.
- cv2.IMREAD_UNCHANGED: It is used to read the image as it is. It does not make any changes or ignore anything from the image. You can also specify -1 for this flag.
Reading Image in RGB Format
""" Image path representing the location of the image on the disk. """
image_path = "python-logo.png"
""" Reading the image and returning the image matrix """
image = cv2.imread(image_path, cv2.IMREAD_COLOR)
The image variable represents the image matrix in the form of numpy.ndarray class. To get the shape of this numpy.ndarray use the shape function.
print(image.shape)
print(f"Height:\t\t {image.shape[0]}")
print(f"Width:\t\t {image.shape[1]}")
print(f"Channel:\t {image.shape[2]}")
The statement image.shape returns a list with three values representing the height, width and number of channels.
""" Displays the image in a GUI window. Press ESC key and the window is removed automatically. """
cv2.imshow("Python Logo", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
Reading Image in Grayscale Format
import numpy as np
import cv2
""" Image path representing the location of the image on the disk. """
image_path = "python-logo.png"
""" Reading the image and returning the image matrix """
image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)
print(image.shape)
print(f"Height:\t\t {image.shape[0]}")
print(f"Width:\t\t {image.shape[1]}")
""" Displays the image in a GUI window. Press ESC key and the window is removed automatically. """
cv2.imshow("Python Logo", image)
cv2.waitKey(0)
cv2.destroyAllWindows()