彩色图片可以转为灰度图片,虽然在转换的过程中会丢失颜色信息,但是确保留了图片的纹理、线条、轮廓等特征,这些特征往往比颜色更重要。将彩色图片转换为灰度图片后,存储的数据量自然而然会减少,这样对图片进行处理时的计算量会减少很多。下面是将彩色图片转为灰度图片的代码。
import numpy as np
import cv2
img = cv2.imread(r"E:\flower.jpg")
img.shape #(867, 1024, 3)
#使用cv2.cvtColor()方法将彩色图片转换为灰度图片
gray_img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
print(gray_img.shape) #(867, 1024)
#将转换后的灰度图片恢复为BGR形式
img2 = cv2.cvtColor(gray_img,cv2.COLOR_GRAY2BGR)
print(img2.shape) #(867, 1024, 3)
#输出彩色图片内容
print(img)
#输出将灰度图片重新转换为BGR形式图片的内容
print(img2)
cv2.imwrite(r'E:\flower1.jpg',gray_img)
cv2.imwrite(r'E:\flower2.jpg',img2)
原图片 灰度化之后的图片 灰度化图片复原后的彩色图片