【细节要点】cv2使用要点——色彩通道
应用背景
cv2
是python处理图像过程中常用的包,同时有很大可能和其他图像处理包(如plt
)混用,由于cv2
的图像色彩通道设置略有些特殊,因此在使用时需要特别注意
示例
数据来源:CIFAR-10
- 从CIFAR-10中拿取一张图片,使用
plt.imshow
查看plt.imshow(img_data)
- 不经过任何处理,使用
cv2.imwrite
保存为“image.jpg”,再使用plt.imread
读入后查看,可以看到色彩分布发生了改变cv2.imwrite("image.jpg", img_data) saved_image = plt.imread("image.jpg") plt.imshow(saved_image)
- 使用
cv2.imread
读入“image.jpg”并查看图像saved_image = cv2.imread("image.jpg") plt.imshow(saved_image)
总结
cv2
处理图像(特别是在读取和保存时)使用的是BGR颜色通道,而通常图片数据会采用RGB颜色通道,在内部图像数据处理时,这样的差异并不会影响图像处理过程,但使用cv2
向外部获取/输出图像数据前,需要先使用cv2.cvtColor
对图像数据的色彩通道进行调整。
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)