欢迎光临散文网 会员登陆 & 注册

python 解决cv2.imread读图片后颜色显示不正确的问题的2种解决方法

2022-03-25 00:18 作者:LogByMax  | 我要投稿

(笔记)

python版本:3.7

示例图片:Hibara.jpeg

Hibara.jpeg

问题

如果使用CV2.imread直接读取,plt.imshow直接显示的话,效果为图片颜色显示异常

图片颜色显示异常

原因是CV2.imread读取完图片后,是以BGR的顺序存储图片颜色通道的[1]

但是plt.imshow此时是直接输出存储的后的文件,所以输出是图片的通道顺序就变成BGR了,而不是原图片的RGB形式。[2]

解决方法

如果希望使用CV2.imread读取图片,且使用plt.imshow来输出正常照片的话,可以在输出时把颜色通道的顺序从BGR调整为RGB就行了。

第一种方案:直接对颜色通道矩阵的存放顺序进行翻转。

第二种方案:先将3个颜色通道用CV2.split分开,分别存储为b,g,r,然后再用CV2.merge()将他们以r,g,b的形式合起来,然后再进行输出。

=END=

=references=

[1]https://docs.opencv.org/3.4/d4/da8/group__imgcodecs.html

[2]https://matplotlib.org/3.5.0/api/_as_gen/matplotlib.pyplot.imshow.html

python 解决cv2.imread读图片后颜色显示不正确的问题的2种解决方法的评论 (共 条)

分享到微博请遵守国家法律