【细节要点】cv2使用要点——色彩通道

应用背景

cv2是python处理图像过程中常用的包,同时有很大可能和其他图像处理包(如plt)混用,由于cv2的图像色彩通道设置略有些特殊,因此在使用时需要特别注意

示例

数据来源:CIFAR-10

  1. 从CIFAR-10中拿取一张图片,使用plt.imshow查看
    plt.imshow(img_data)
    
    image
  2. 不经过任何处理,使用cv2.imwrite保存为“image.jpg”,再使用plt.imread读入后查看,可以看到色彩分布发生了改变
    cv2.imwrite("image.jpg", img_data)
    
    saved_image = plt.imread("image.jpg")
    plt.imshow(saved_image)
    
    image
  3. 使用cv2.imread读入“image.jpg”并查看图像
    saved_image = cv2.imread("image.jpg")
    plt.imshow(saved_image)
    
    image

总结

cv2处理图像(特别是在读取和保存时)使用的是BGR颜色通道,而通常图片数据会采用RGB颜色通道,在内部图像数据处理时,这样的差异并不会影响图像处理过程,但使用cv2向外部获取/输出图像数据前,需要先使用cv2.cvtColor对图像数据的色彩通道进行调整。

img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
posted @ 2022-05-02 09:41  TheError  阅读(527)  评论(0编辑  收藏  举报