图像类型转换就是把图像从一种类型转换成另一种类型。
opencv提供了200多种类型转换。我们这次学三个。
类型有:
cv2.COLOR_BGR2GRAY //彩色图像转灰度图像
cv2.COLOR_BGR2RGB //BGR转RGB
cv2.COLOR_GRAY2BGR //灰度转彩色
使用方法:
b = cv2.cvtColor(a, cv2.COLOR_BGR2GRAY) //a是图像源,第二个参数是类型。【例1】
b = cv2.cvtColor(a, cv2.COLOR_BGR2RGB) //【例2】
b = cv2.cvtColor(a, cv2.COLOR_GRAY2BGR) //【例3】
例1:彩色图像转灰度图像
'''
图像转换
'''
import cv2
image = cv2.imread("image\\lenacolor.png")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imshow("image", image)
cv2.imshow("gray", gray)
cv2.waitKey()
cv2.destroyAllWindows()
|
结果:
例2:彩色图像转换成rgb图像
'''
图像转换
'''
import cv2
image = cv2.imread("image\\lenacolor.png")
rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) #彩色图像转换成rgb图像
r,g,b = cv2.split(rgb) #把rgb三个通道分离出来,然后合并一下看看是不是确实转成了rgb三个通道
result = cv2.merge([b,g,r]) #合并
cv2.imshow("image", image)
cv2.imshow("rgb", rgb)
cv2.imshow("merge",result) #如果得到了原图,说明确实转成了rgb图像。
cv2.waitKey()
cv2.destroyAllWindows()
|
结果:
例3:灰度转彩色
'''
图像转换
'''
import cv2
image = cv2.imread("image\\lena256.bmp",cv2.IMREAD_UNCHANGED)
result = cv2.cvtColor(image, cv2.COLOR_GRAY2BGR) #灰度转彩色图像
print(image.shape)
print(result.shape)
cv2.imshow("image", image)
cv2.imshow("result", result)
cv2.waitKey()
cv2.destroyAllWindows()
|
结果:
可以发现result,是3个通道的图像。
|