为什么matplotlib显示opencv图像不正常
生活随笔
收集整理的這篇文章主要介紹了
为什么matplotlib显示opencv图像不正常
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在前面的《數字圖像的加載、顯示和輸出》中提到,opencv對多個圖片輸出在同一個窗口并沒有直接的支持手段,但有時候我們會有這個需求,這時可以用matplotlib搭配使用。
下面將4張圖片放在一個窗口中顯示。原始圖像如下:
使用matplotlib將4幅圖像顯示在一個窗口的代碼如下:
顯示如下:
可以看出,圖像的顏色顯示不正常。
這是因為matplotlib使用的顏色模式是我們現在流行的RGB模式,而opencv使用的是BGR模式,即RGB的倒序模式,與我們通常的RGB是反向的。因此在使用matplotlib顯示之前需要做一下圖像顏色的轉換。
注意下面代碼中如下這一行:
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
再次輸出,這次正常了:
那么問題來了,為什么opencv要采用BGR順序的模式呢?這又是因為歷史原因,早期的opencv開發者采用了BGR順序,所以一直遺留下來了。那么早期的opencv開發者為什么要用BGR呢,因為那時的許多照相機生產廠家和軟件開發商就是采用的BGR模式。
總結
以上是生活随笔為你收集整理的为什么matplotlib显示opencv图像不正常的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数字图像的加载、显示和输出
- 下一篇: 统计学---极端异常值的检测