在对 this question 的回答中,我想以其原始颜色显示图像,因此从这行代码中删除了 gray
参数:
plt.imshow(im_out, 'gray')
然而,当这样做时,我得到的图像显示为黄色和紫色,而不是图像的原始颜色。
我应该怎么做才能显示图像的原始颜色?
谢谢。
编辑 1 我遇到了 this tutorial ,似乎我应该使用:
plt.imshow(cv2.cvtColor(im_out, cv2.COLOR_BGR2RGB))
但是,当我这样做时,我得到了以下信息:
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
我该如何解决这个问题?
EDIT 2 上面的原因是原代码中读取图片如下:
orig_image = cv2.imread('1.jpg', 0)
所以,我只是删除了 0
。
最佳答案
基于 this tutorial ,为了解决这个问题,我不得不将 BGR
转换为 RGB
,如下所示:
plt.imshow(cv2.cvtColor(im_out, cv2.COLOR_BGR2RGB))
关于Python - 以原始颜色显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46085635/