In Computer Vision applications, images are an integral part of the development process. Often there would be a need to read images and display them if required. To read and display image using OpenCV Python, you could use cv2.imread() for reading image to a variable and cv2.imshow() to display the image in a separate window.
The Syntax to read image is
cv2.imread(/complete/path/to/image,flag)
First argument is complete path to the image along with the extension.
Second argument is an optional flag which could be any one of the following :
Returns numpy array, containing the pixel values. For colored images, each pixel is represented as an array containing Red, Green and Blue channels.
Note that the default flag is cv2.IMREAD_COLOR. Hence even if read a png image with transparency, the transparency channel is neglected.
The syntax to display image is
cv2.imshow(window_name, image)
First argument is name of the window that is displayed when image is shown in.
Second argument is the image to be shown in the window.
Example:
Following is example of reading ad displaying image using cv2
import cv2
img = cv2.imread('abc.jpeg')
cv2.imshow('sample image',img)
cv2.waitKey(0) # waits until a key is pressed
cv2.destroyAllWindows() # destroys the window showing image
When above program is run, an image is shown in another window named ‘sample image’, as specified in the arguments of imshow().
While working with images in Image Processing applications, it is quite often that you need to store intermediate results of image transformations or save the final resulting image. When working with OpenCV Python, images are stored in numpy ndarray. To save an image to the local file system, use cv2.imwrite() function of opencv python library.
The syntax to write an image is
cv2.imwrite('/path/to/destination/image.png',image)
where
Example:
import cv2
# read image as grey scale
img = cv2.imread('abc.jpg')
# save image
cv2.imwrite('xyz.jpg', img)
cv2.waitKey(0) # waits until a key is pressed
cv2.destroyAllWindows() # destroys the window showing image
To check its output, go in current folder and check image file "xyz.jpg". if it is present there, it means porgram runs perfectly.
When working with OpenCV Python, images are stored in numpy ndarray. To get the image shape or size, use ndarray.shape to get the dimensions of the image. Then, you can use index on the dimensions variable to get width, height and number of channels for each pixel.
import cv2
# read image
img = cv2.imread('abc.jpg')
# get dimensions of image
dimensions = img.shape
# height, width, number of channels in image
height = img.shape[0]
width = img.shape[1]
channels = img.shape[2]
print('Image Dimension : ',dimensions)
print('Image Height : ',height)
print('Image Width : ',width)
print('Number of Channels : ',channels)
Output is
In the above example, Number of Channels = 4 represent Alpha, Red, Green and Blue