2016-07-26 11 views
5

Warum gibt es einen Unterschied im Ausgabebild, wenn dasselbe Bild mit plt.show & cv2.imshow() aufgerufen wird?Unterschied zwischen plt.show und cv2.imshow?

Hier ist mein Code:

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

Hier ist das Bild von plt.show:

image output for plt.show

und das zweite ist das Originalbild:

image output from cv2.show

Gibt es einige Änderungen benötigt mit der plt.show()?

Antwort

8

Da OpenCV Bilder in BGR-Reihenfolge statt RGB speichert.

Versuchen plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))

here für ein Beispiel.