plt.imshow()顯示圖片色差問題


轉載:https://www.cnblogs.com/darkknightzh/p/6039667.html

由於系統缺少某些庫,導致cv2.imshow()無法使用,於是使用matplotlib.pyplot.imshow()代替,但是在使用時發現plt.imshow()顯示的圖片顏色有問題。

原圖:

from matplotlib import pyplot as plt import cv2 import numpy as np img = cv2.imread('XXX') plt.imshow(img)
  • 1
  • 2
  • 3
  • 4
  • 5


明顯看出顏色有問題。網上查找發現原來是cv2讀取的問題:
使用cv2.imread()接口讀圖像,讀進來的是BGR格式以及【0~255】。所以只要將img轉換為RGB格式顯示即可:

img_2 = img[:,:,[2,1,0]] plt.imshow(img_2)
  • 1
  • 2


也正是由於這個原因,在使用pycaffe做識別時需要轉換通道:
image = caffe.io.load_image(image_file) #加載圖片
使用caffe.io.load_image()讀取進來的是RGB格式和【0~1】(float),所以在進行識別之前要在transformer中設置transformer.set_raw_scale(‘data’,255)(縮放至0~255),以及transformer.set_channel_swap(‘data’,(2,1,0))(將RGB變換到BGR,因為訓練時用cv2讀取的圖片是BGR的,測試需要和訓練一致)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM