python 解決cv2.imread讀圖片后顏色顯示不正確的問(wèn)題的2種解決方法
(筆記)
python版本:3.7
示例圖片:Hibara.jpeg

問(wèn)題
如果使用CV2.imread直接讀取,plt.imshow直接顯示的話(huà),效果為圖片顏色顯示異常

原因是CV2.imread讀取完圖片后,是以BGR的順序存儲(chǔ)圖片顏色通道的[1]
但是plt.imshow此時(shí)是直接輸出存儲(chǔ)的后的文件,所以輸出是圖片的通道順序就變成BGR了,而不是原圖片的RGB形式。[2]
解決方法
如果希望使用CV2.imread讀取圖片,且使用plt.imshow來(lái)輸出正常照片的話(huà),可以在輸出時(shí)把顏色通道的順序從BGR調(diào)整為RGB就行了。
第一種方案:直接對(duì)顏色通道矩陣的存放順序進(jìn)行翻轉(zhuǎn)。

第二種方案:先將3個(gè)顏色通道用CV2.split分開(kāi),分別存儲(chǔ)為b,g,r,然后再用CV2.merge()將他們以r,g,b的形式合起來(lái),然后再進(jìn)行輸出。

=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
標(biāo)簽: