2016-07-26 18 views
5

Tại sao có sự khác biệt trong hình ảnh đầu ra khi gọi cùng một hình ảnh bằng cách sử dụng plt.show & cv2.imshow()?Sự khác biệt giữa plt.show và cv2.imshow?

Đây là mã của tôi:

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() 

Dưới đây là hình ảnh từ plt.show:

image output for plt.show

và điều thứ hai là hình ảnh ban đầu:

image output from cv2.show

Có một số sửa đổi không bắt buộc với plt.show()?

Trả lời

8

Vì OpenCV lưu trữ hình ảnh theo thứ tự BGR thay vì RGB.

Hãy thử plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))

Xem here cho một ví dụ.

Các vấn đề liên quan