新手使用CV2.imread后,直接显示,得到下面这种蓝色的图片,与原图差异很大:

CV2的imread默认存储的颜色空间顺序是BGR,与matplot显示用的imshow的颜色顺序RGB正好相反,那么怎么转换呢?

经常使用的有

方法1:

myimg=myimg[...,::-1]

这种方法初学者一般看不懂,::-1表示的是逆序,前面...我也不知道什么意思,官方给出的转换就是这样。

方法2:

使用库函数,简单易懂,但是不知道内部怎么搞的:

myimg = cv2.cvtColor(myimg,cv2.COLOR_BGR2RGB)

方法3:

也是我的原创方法,其实就是使用索引将[:,:,0]和[:,:,2]互换位置即可,该方法可以展示BGR到RGB的转换,即是将R通过和B通过互换位置即可。

index = [2,1,0]
myimg = myimg[:,:,index]

显示正常。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐