2016-07-26 399 views
5

爲什麼使用plt.show & cv2.imshow()調用同一圖像時輸出圖像有差異?plt.show和cv2.imshow之間的區別?

這裏是我的代碼:

import cv2 
import numpy as np 
from matplotlib import pyplot as plt 

src=cv2.imread('fruits1.jpg') # Source image 

plt.subplot(211),plt.imshow(src),plt.title('image') 
plt.xticks([]),plt.yticks([]) 
plt.show() 

cv2.imshow('image',src) 
cv2.waitKey(0) 
cv2.destroyWindow() 

這裏是plt.show圖像:

image output for plt.show

,第二個是原始圖像:

​​

是否有一些修改需要與plt.show()?

回答

8

因爲OpenCV以BGR順序存儲圖像而不是RGB。

嘗試plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))

爲例見here