在用plt.imshow和cv2.imshow显示同一幅图时可能会出现颜色差别很大的现象。这是因为:

  • opencv的接口使用BGR,而matplotlib.pyplot 则是RGB模式
  • 下面代码cv2读入的是BGR模式,在opencv里面存储的是BGR,所以img用opencv输出就是正常颜色;
  • 而matplotlib.pyplot是RGB模式,当用cv读入,直接用matplotlib.pyplot输出,颜色就变了,所以需要调整颜色的顺序,就变成了img2;
import cv2
import numpy as np
import matplotlib.pyplot as plt  img = cv2.imread('lena_std.tif')
b,g,r = cv2.split(img)
img2 = cv2.merge([r,g,b])
plt.subplot(121);plt.imshow(img)
plt.subplot(122);plt.imshow(img2)
plt.show()  cv2.imshow('bgr image',img)
cv2.imshow('rgb image',img2)
cv2.waitKey(0)
cv2.destroyAllWindows()

程序运行结果如下:
Matplotlib显示结果

OpenCV显示结果

                       

参考资料:http://stackoverflow.com/questions/15072736/extracting-a-region-from-an-image-using-slicing-in-python-opencv/15074748#15074748

转载:https://blog.csdn.net/cnnmena/article/details/79613531

plt.imshow与cv2.imshow显示颜色问题相关推荐

  1. python imshow彩色_python中plt.imshow与cv2.imshow显示颜色问题

    在用plt.imshow和cv2.imshow显示同一幅图时可能会出现颜色差别很大的现象. 这是因为:opencv的接口使用BGR,而matplotlib.pyplot 则是RGB模式 import ...

  2. python灰度图cv2到plt变颜色_python中plt.imshow与cv2.imshow显示颜色问题

    python中plt.imshow与cv2.imshow显示颜色问题 在用plt.imshow和cv2.imshow显示同一幅图时可能会出现颜色差别很大的现象. 这是因为:opencv的接口使用BGR ...

  3. Jupyter NoteBook 中使用 cv2.imshow 显示图片

    Jupyter NoteBook 中使用 cv2.imshow 显示图片 有两种办法: 用 cv2.imshow时加入cv2.destroyAllWindows() 用 plt.imshow() 代替 ...

  4. 解决问题:使用cv2.imshow/plt.imshow显示图片正常,但保存下来的图片不正常或者全黑

    今天遇到了一个Bug,花了很大的时间精力解决,在这里记录一下. Bug如题目所说,在对一张渲染出来的图片保存时,发现存成了全黑的图,尝试过将数据归一化/改变数据类型等等方式均失败,然而尝试了用 ope ...

  5. 【OpenCV 例程200篇】03. 图像的显示(cv2.imshow)

    [OpenCV 例程200篇]03. 图像的显示(cv2.imshow) 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新 ...

  6. matlab的imshow python中cv2.imshow及plt.imshow相关测试

    在对灰度图.二值图测试显示过程中,发现matlab的imshow函数和plt.imshow函数显示的图像会出现信息缺失情况,让人误以为图像矩阵像素值发生变化.经过测试,是由于imshow函数存在像素缩 ...

  7. plt.imshow()中cmap参数控制颜色展示

    plt.imshow()中cmap参数控制颜色展示 以A = [[0,1,2],[3,4,5],[6,7,8]]为例进行展示 plt.imshow(A, cmap="xxx")其中 ...

  8. cv2.imshow()显示图片未响应,以及cv2.imwrite()黑图问题

    自己代码如下 def create_sample():# 训练标签数据csv转图片train_mask = pd.read_csv(TRAIN_MASK_DIR+"/train_mask.c ...

  9. cv2 imshow窗口大小_cv2.imshow()图片无法显示

    在Pycharm和jupyter notebook中运行cv2.imshow()函数的时候,图片无法正常显示,是因为在运行cv2.imshow()之后,需要使用cv2.waitKey()来保持窗口的显 ...

  10. python窗口显示图片imread() imshow()_Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()

    为什么使用Python-OpenCV? 虽然python 很强大,而且也有自己的图像处理库PIL,但是相对于OpenCV 来讲,它还是弱小很多.跟很多开源软件一样OpenCV 也提供了完善的pytho ...

最新文章

  1. VALSE 青年学者 | 心中的象牙塔:怎样才能拿到理想的教职offer?
  2. 锁类型_ sys.dm_os_wait_stats
  3. check的用法java,Java ValueRange checkValidValue()用法及代码示例
  4. Combo box的使用
  5. 真的不值得重视吗?ETH Zurich博士重新审视贝叶斯深度学习先验
  6. 【深度学习】通过python画出loss曲线
  7. Map-Reduce 思想在 ABAP 编程中的一个实际应用案例
  8. windows系统里懒人的福音,如何实现不按住ctrl实现文件多选
  9. Java I/O 扩展
  10. C++——size_t 和 size_type的区别
  11. 【RUST官方语言中文翻译】前言
  12. mysql +hive 安装
  13. React-引入图片的方法
  14. 80386的内存分页机制
  15. Server 2012 Log off 按键
  16. [No000014B]Office-PPT设置默认打开视图
  17. Oracle数据库学习
  18. python3安装cv2 安装opencv 2019发布
  19. 游戏音效是用什么软件做的?
  20. 微服务 细颗粒度的 soa

热门文章

  1. 初识 Node.js
  2. Kotlin中定义编译时常量
  3. 分布式与集群的联系与区别
  4. SVM-线性可分支持向量机
  5. java RandomAccessFile类(随机访问文件)
  6. Revit二次开发之TaskDialog
  7. servlet中doGet()和doPost()的区别
  8. Model与Record转换适配
  9. 项目中libevent几个问题
  10. 重新想象 Windows 8 Store Apps (35) - 通知: Toast 详解