Opencv与Matplotlib图片颜色展示不一致

网上找到的车牌图片如下:蓝色底。
在这里插入图片描述
当使用opencv和matplotlib分别展示读取的图片的时候,发现展示的颜色不一致。
在这里插入图片描述
网上查到了相关资料,opencv库中读取图片颜色通道为BGR,而plt.imshow读取通道为RGB。正是因为读取通道的顺序不同,导致了展示的不同。
在这里插入图片描述

然后我想把每个通道都拿出来,分别展示B/G/R图片。opencv中提供了split方法用来将通道进行分割,又提供了merge进行通道合并。

img000 = cv.imread('test002.jfif') # shape -> (127, 396, 3) 
B, G, R = cv.split(img000)  # B, G, R shape -> (127, 396) 
zeros = np.zeros(img000.shape[:2], dtype='uint8') # 创建空数组备用 shape -> (127, 396)
BLUE = cv.merge([B, zeros, zeros]) # shape -> (127, 396, 3)
GREEN = cv.merge([zeros, G, zeros])
RED = cv.merge([zeros, zeros, R])
cv.imshow('BLUE', BLUE)
cv.imshow('GREEN', GREEN)
cv.imshow('RED', RED)
cv.waitKey(0)

可以看到确实根据通道的不同所展示的颜色不同。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值