Python-以原始颜色显示图像

Sim*_*ity 6 python matplotlib surf

在回答这个问题时,我想以原始颜色显示图像,因此gray从这行代码中删除了参数:

plt.imshow(im_out, 'gray')
Run Code Online (Sandbox Code Playgroud)

然而,当这样做时,我得到的图像显示为黄色和紫色,而不是图像的原始颜色。

我该怎么做才能以原始颜色显示图像?

谢谢。

编辑 1我遇到了这个教程,似乎我应该使用:

plt.imshow(cv2.cvtColor(im_out, cv2.COLOR_BGR2RGB))
Run Code Online (Sandbox Code Playgroud)

然而,当我这样做时,我得到了以下结果:

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
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

编辑2上面的原因是图像在原始代码中的读取方式如下:

orig_image = cv2.imread('1.jpg', 0)
Run Code Online (Sandbox Code Playgroud)

所以,我干脆删除了0.

Sim*_*ity 8

根据本教程,为了解决该问题,我必须转换BGRRGB,如下所示:

plt.imshow(cv2.cvtColor(im_out, cv2.COLOR_BGR2RGB))
Run Code Online (Sandbox Code Playgroud)