python中plt.imshow與cv2.imshow顯示顏色問題
在用plt.imshow
和cv2.imshow
顯示同一幅圖時可能會出現(xiàn)顏色差別很大的現(xiàn)象。
這是因為:opencv的接口使用BGR,而matplotlib.pyplot
則是RGB模式
import cv2 import numpy as np import matplotlib.pyplot as plt img = cv2.imread('lena_std.tif') b,g,r = cv2.split(img) img2 = cv2.merge([r,g,b]) plt.subplot(121);plt.imshow(img) plt.subplot(122);plt.imshow(img2) plt.show() cv2.imshow('bgr image',img) cv2.imshow('rgb image',img2) cv2.waitKey(0) cv2.destroyAllWindows()
程序運行結(jié)果如下:
Matplotlib顯示結(jié)果
OpenCV顯示結(jié)果
下面看下cv2.imshow()和plt.imshow()的區(qū)別
- 什么時候使用plt.show(),什么時候用cv2.imshow()?
- 如果需要展示讀入的圖像,或者展示對讀入圖像進行一系列操作后的圖像時,使用cv2.imshow()
- 如果不需要展示原始圖像,而是繪制一張新的圖像,使用plt.imshow()
- 其實兩者都可以,但要注意的是opencv是BGR通道,plt默認(rèn)RGB通道,若使用cv2.imread()讀入圖像,用plt.imshow()展示原始圖像或者展示對讀入圖像進行一系列操作后的圖像時,需要進行通道轉(zhuǎn)換。
- 在展示灰度圖像時,cv2.imshow(‘gray', gray)
- plt.imshow(gray,cmap=‘gray'), plt.title(‘gray')
到此這篇關(guān)于plt.imshow與cv2.imshow顯示顏色問題的文章就介紹到這了,更多相關(guān)plt.imshow與cv2.imshow顯示顏色內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pycharm通過ssh連接遠(yuǎn)程服務(wù)器教程
今天小編就為大家分享一篇pycharm通過ssh連接遠(yuǎn)程服務(wù)器教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02SpringBoot中的@MessageMapping注解詳解
這篇文章主要介紹了SpringBoot中的@MessageMapping注解詳解,Spring Boot 提供了對 WebSocket 的支持,其中 @MessageMapping 注解是一個常用的注解,它可以將一個 Java 方法標(biāo)記為 WebSocket 的消息處理器,需要的朋友可以參考下2023-08-08Python實現(xiàn)加載及解析properties配置文件的方法
這篇文章主要介紹了Python實現(xiàn)加載及解析properties配置文件的方法,結(jié)合實例形式分析了Python針對properties配置文件的加載、讀取及解析相關(guān)操作技巧,需要的朋友可以參考下2018-03-03OpenCV-Python實現(xiàn)人臉美白算法的實例
人臉美白原理說透了,就是一種圖像的顏色空間處理,所以我們需要通過顏色空間進行設(shè)計。本文就詳細(xì)的介紹一下,感興趣的可以了解一下2021-06-06利用Hyperic調(diào)用Python實現(xiàn)進程守護
這篇文章主要為大家詳細(xì)介紹了利用Hyperic調(diào)用Python實現(xiàn)進程守護,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01