Grayscaling is the process of converting an image from other color spaces e.g. RGB, CMYK, HSV, etc. to shades of gray. It varies between complete black and complete white.
Importance of grayscaling
- Dimension reduction: For example, In RGB images there are three color channels and three dimensions while grayscale images are single-dimensional.
- Reduces model complexity: Consider training neural articles on RGB images of 10x10x3 pixels. The input layer will have 300 input nodes. On the other hand, the same neural network will need only 100 input nodes for grayscale images.
- For other algorithms to work: Many algorithms are customized to work only on grayscale images e.g. Canny edge detection function pre-implemented in the OpenCV library works on Grayscale images only.
Let’s learn the different image processing methods to convert a colored image into a grayscale image.
Method 1: Using the cv2.cvtColor() function
Import the OpenCV and read the original image using imread() than convert to grayscale using cv2.cvtcolor() function. destroyAllWindows() function allows users to destroy or close all windows at any time after exiting the script.
Python3
import cv2
image = cv2.imread( 'C:\\Documents\\full_path\\tomatoes.jpg' )
cv2.imshow( 'Original' , image)
cv2.waitKey( 0 )
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imshow( 'Grayscale' , gray_image)
cv2.waitKey( 0 )
cv2.destroyAllWindows()
|
Input image:
Output Image:
Method 2: Using the cv2.imread() function with flag=zero
Import the OpenCV and read the original image using imread() than convert to grayscale using cv2.cvtcolor() function.
Python3
import cv2
img = cv2.imread( 'C:\\Documents\\full_path\\tomatoes.jpg' , 0 )
cv2.imshow( 'Grayscale Image' , img)
cv2.waitKey( 0 )
cv2.destroyAllWindows()
|
Output Image:
Method 3: Using the pixel manipulation (Average method)
Python3
import cv2
img = cv2.imread( 'C:\\Documents\\full_path\\tomatoes.jpg' )
(row, col) = img.shape[ 0 : 2 ]
for i in range (row):
for j in range (col):
img[i, j] = sum (img[i, j]) * 0.33
cv2.imshow( 'Grayscale Image' , img)
cv2.waitKey( 0 )
cv2.destroyAllWindows()
|
Output Image:
Hope you have understood the above-discussed image processing techniques to convert a colored image into a grayscale image in Python!
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!