一、常见的类型转换
OpenCV 提供了200多种不同类型之间的转换,常见的有:
cv2.COLOR_BGR2GRAY # BGR -> GRAY
cv2.COLOR_BGR2RGB # BGR -> RGB
cv2.COLOR_GRAY2BGR # GRAY -> BGR
二、类型转换
- 彩色 ——> 灰色
img = cv2.imread(r'F:\image\lenacolor.png')
img_grey = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) # 图像转换
效果对比
- BGR ——> RGB
img_RGB = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) # 转换为RGB图片
cv2.imshow('convert_RGB',img_RGB)
效果对比
-
灰色 ——> 彩色
original_grey = cv2.imread(r'F:\image\lena512.bmp',cv2.IMREAD_UNCHANGED) # 读取灰度图像 img_color = cv2.cvtColor(img_grey,cv2.COLOR_GRAY2BGR) # 转换为彩色 cv2.imshow('original_grey',original_grey) # 显示原灰度图 cv2.imshow('convert_color',img_color) # 显示转换后的彩色图 print('原图像尺寸为:',original_grey.shape) print('现图像尺寸为:',img_color.shape)
效果对比
可以看到,虽然显示的图片仍是灰色的,但其通道数已经变为3
三、完整代码
#Author:MuMengSunny
#Filename:图像类型转换
import cv2
img = cv2.imread(r'F:\image\lenacolor.png',cv2.IMREAD_UNCHANGED) # 读取彩色图像
original_grey = cv2.imread(r'F:\image\lena512.bmp',cv2.IMREAD_UNCHANGED) # 读取灰度图像
img_grey = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) # 转换为灰度图
img_RGB = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) # 转换为RGB图片
img_color = cv2.cvtColor(img_grey,cv2.COLOR_GRAY2BGR) # 转换为彩色
cv2.imshow('original',img)
cv2.imshow('convert_grey',img_grey)
cv2.imshow('convert_RGB',img_RGB)
cv2.imshow('original_grey',original_grey) # 显示原灰度图
cv2.imshow('convert_color',img_color) # 显示转换后的彩色图
print('原图像尺寸为:',original_grey.shape)
print('现图像尺寸为:',img_color.shape)
cv2.waitKey(0)
cv2.destroyAllWindows()