In der Antwort auf this question angezeigt, wollte ich das Bild in seinen ursprünglichen Farben anzuzeigen, und so entfernt, um die gray
Parameter aus dieser Codezeile:Python - das Bild mit den Originalfarben
plt.imshow(im_out, 'gray')
Wenn tun Dies jedoch ich bekomme das Bild mit gelben und violetten Farben im Gegensatz zu den ursprünglichen Farben des Bildes angezeigt.
Was soll ich tun, um das Bild mit seinen Originalfarben anzuzeigen?
Danke.
EDIT 1 Ich kam in this tutorial, und scheint, dass ich verwenden sollte:
plt.imshow(cv2.cvtColor(im_out, cv2.COLOR_BGR2RGB))
Allerdings, wenn ich dies tat, habe ich folgendes:
Calculated scale difference: 0.99
Calculated rotation difference: 44.51
OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cvtColor, file /home/user/opencv/modules/imgproc/src/color.cpp, line 10606
Traceback (most recent call last):
File "align_surf.py", line 47, in <module>
deskew()
File "align_surf.py", line 9, in deskew
plt.imshow(cv2.cvtColor(im_out, cv2.COLOR_BGR2RGB))
cv2.error: /home/user/opencv/modules/imgproc/src/color.cpp:10606: error: (-215) scn == 3 || scn == 4 in function cvtColor
Wie kann ich das beheben dieses Problem?
EDIT 2 Der Grund der oben war, dass das Bild gelesen wurde, wie im ursprünglichen Code folgt:
orig_image = cv2.imread('1.jpg', 0)
Also, ich 0
einfach entfernt.
es ist aus der Dokumentation nicht klar, aber die 0 vermutlich standardmäßig auf ‚1‘ als das Entfernen pro die C++ Dokumentation: http://docs.opencv.org/2.4/modules/highgui/doc/reading_and_writing_images_and_video.html?highlight=imread#cv2.imread –
auch, 'plt.imshow (img, 'grau')' anweist matplotlib, um das Bild 'img' mit der' grey' Colormap anzuzeigen; d.h. die Implikation ist, dass "img" ein Graustufenbild ist. Anderenfalls macht das Diktieren einer Colormap auf ein "Color" -Bild keinen Sinn. –