Python - 以原始颜色显示图像

标签 python matplotlib surf

在对 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/

相关文章:

Python Matplotlib 交互式绘图 - 几帧后卡住

python - 为什么我的 'oldUser()'不运行并且为什么它总是重新启动?

python - 在 Selenium 中显示当前光标位置

c++ - OpenCV - 从 yml 加载描述符 - 没有匹配的函数调用

python - 在 raspbian soft-float 上使用来自 Raspberry Pi 的 Python 的 FTDI D2XX 驱动程序

python - 如何使用 Axes3D 显示我的曲面图?

python - Pandas scatter_matrix - 绘制分类变量

python - 为动画重新绘制 Seaborn 图形

artificial-intelligence - 3D图像数据集的特征提取

opencv - OpenCL对OpenCV Featuredetector/deskriptor的支持