专栏地址:『youcans 的 OpenCV 例程300篇 - 总目录』
01. 图像的读取(cv2.imread)
02. 图像的保存(cv2.imwrite)
03. 图像的显示(cv2.imshow)
04. 用 matplotlib 显示图像(plt.imshow)

【youcans 的 OpenCV 例程300篇】04. 用 matplotlib 显示图像(plt.imshow)

函数 plt.imshow() 用于通过 matplotlib 库显示图像。

函数说明:

matplotlib.pyplot.imshow(img[, cmap])

OpenCV 使用 BGR 格式,matplotlib/PyQt 使用 RGB 格式。使用 matplotlib/PyQt 显示 openCV 图像,要将 BGR 格式转换为 RGB 格式:

# 图片格式转换:BGR(OpenCV) -> RGB(PyQt5)
imgRGB = cv2.cvtColor(imgBGR, cv2.COLOR_BGR2RGB)

参数说明:

  • img:图像数据,nparray 多维数组,对于 openCV(BGR)格式图像要先进行格式转换
  • cmap:颜色图谱(colormap),默认为 RGB(A) 颜色空间
    • gray:灰度显示
    • hsv:hsv 颜色空间

注意事项:

  1. OpenCV 和 matplotlib 中的彩色图像都是 Numpy 多维数组。但 OpenCV 使用 BGR 格式,颜色分量按照蓝/绿/红的次序排列,而 matplotlib 使用 RGB 格式,颜色分量按照红/绿/蓝的次序排序。因此用 plt.imshow() 显示 OpenCV 彩色图像时,先要进行颜色空间转换,将Numpy 多维数组按照红/绿/蓝的次序排序。
  2. plt.imshow() 可以直接显示 OpenCV 灰度图像,不需要格式转换,但需要使用 cmap=‘gray’ 进行参数设置。
  3. plt.imshow() 可以使用 matplotlib 库中的各种方法绘图,如标题、坐标轴、插值等,详见 matploblib Document。
  4. PyQt5 也使用 RGB 格式,因此在 PyQt5 中显示 OpenCV 彩色图像时,也要进行颜色空间转换。

基本例程:

    # 1.10 图像显示(plt.imshow)imgFile = "../images/imgLena.tif"  # 读取文件的路径img1 = cv2.imread(imgFile, flags=1)  # flags=1 读取彩色图像(BGR)imgRGB = cv2.cvtColor(img1, cv2.COLOR_BGR2RGB)  # 图片格式转换:BGR(OpenCV) -> RGB(PyQt5)img2 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)  # 图片格式转换:BGR(OpenCV) -> Grayplt.rcParams['font.sans-serif'] = ['FangSong']  # 支持中文标签plt.subplot(221), plt.title("1. RGB 格式(mpl)"), plt.axis('off')plt.imshow(imgRGB)  # matplotlib 显示彩色图像(RGB格式)plt.subplot(222), plt.title("2. BGR 格式(OpenCV)"), plt.axis('off')plt.imshow(img1)    # matplotlib 显示彩色图像(BGR格式)plt.subplot(223), plt.title("3. 设置 Gray 参数"), plt.axis('off')plt.imshow(img2, cmap='gray')  # matplotlib 显示灰度图像,设置 Gray 参数plt.subplot(224), plt.title("4. 未设置 Gray 参数"), plt.axis('off')plt.imshow(img2)  # matplotlib 显示灰度图像,未设置 Gray 参数plt.show()

程序说明:

图 1 中 OpenCV 的 BGR 彩色图像已转换为 RGB 格式,彩色图像的颜色显示正常;
图 2 中 OpenCV 的 BGR 彩色图像格式未做转换,彩色图像的颜色显示异常;
图 3 中 plt.imshow() 设置 cmap=‘gray’,灰度图像的颜色显示正常;
图 4 中 plt.imshow() 未设置 cmap=‘gray’,灰度图像的颜色显示异常。

(本节完)


版权声明:
youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/125112487)
Copyright 2022 youcans, XUPT
Crated:2021-11-18
更多内容请见:>『youcans 的 OpenCV 例程300篇 - 总目录』(https://blog.csdn.net/youcans/article/details/125112487)

【OpenCV 例程300篇】04. 用 matplotlib 显示图像(plt.imshow)相关推荐

  1. 【OpenCV 例程300篇】01. 图像的读取(cv2.imread)

    专栏地址:『youcans 的 OpenCV 例程300篇 - 总目录』 01. 图像的读取(cv2.imread) 02. 图像的保存(cv2.imwrite) 03. 图像的显示(cv2.imsh ...

  2. 【OpenCV 例程300篇】02. 图像的保存(cv2.imwrite)

    专栏地址:『youcans 的 OpenCV 例程300篇 - 总目录』 01. 图像的读取(cv2.imread) 02. 图像的保存(cv2.imwrite) 03. 图像的显示(cv2.imsh ...

  3. 【youcans的OpenCV例程300篇】总目录

    版权声明: 转载本系列作品时必须标注以下版权内容: [youcans@qq.com, youcans的OpenCV 例程300篇, https://blog.csdn.net/youcans/cate ...

  4. 【OpenCV 例程 300篇】249. 特征描述之视网膜算法(FREAK)

    『youcans 的 OpenCV 例程300篇 - 总目录』 [youcans 的 OpenCV 例程 300篇]249. 特征检测之视网膜算法(FREAK) 1. FREAK 算法简介 快速视网膜 ...

  5. 【OpenCV 例程 300篇】222. 特征提取之弗里曼链码(Freeman chain code)

    OpenCV 例程200篇 总目录 [youcans 的 OpenCV 例程 300篇]222. 特征提取之弗里曼链码(Freeman chain code) 目标特征的基本概念 通过图像分割获得多个 ...

  6. 【OpenCV 例程 300篇】240. OpenCV 中的 Shi-Tomas 角点检测

    『youcans 的 OpenCV 例程300篇 - 总目录』 [youcans 的 OpenCV 例程 300篇]240. OpenCV 中的 Shi-Tomas 角点检测 角是直线方向的快速变化. ...

  7. 【OpenCV 例程300篇】206. Photoshop 色阶调整算法

    OpenCV 例程200篇 总目录 201. 图像的颜色空间转换 202. 查表快速替换(cv.LUT) 203. 伪彩色图像处理 204. 图像的色彩风格滤镜 205. 调节色彩平衡/饱和度/明度 ...

  8. 【OpenCV 例程 300篇】241. 尺度不变特征变换(SIFT)

    『youcans 的 OpenCV 例程300篇 - 总目录』 [youcans 的 OpenCV 例程 300篇]241. 尺度不变特征变换(SIFT) 6.4.1 简介 尺度不变特征转换算法(Sc ...

  9. 【OpenCV 例程300篇】250. 梯度算子的传递函数

    『youcans 的 OpenCV 例程300篇 - 总目录』 [youcans 的 OpenCV 例程300篇]250. 梯度算子的传递函数 1. 空间卷积与频域滤波 空间域图像滤波是图像与滤波器核 ...

最新文章

  1. Scrum敏捷开发工具Leangoo
  2. 比ajax更好技术,ajax 技术
  3. 串联NSOperation知识点
  4. Hive Fetch Task
  5. 真的汉子不多,褚时健褚老算一个
  6. jquery选择器连续选择_JQuery中的选择器
  7. (二)深入了解超文本
  8. 6-2 第六天 规划项目功能分布
  9. L1-017 到底有多二 (15 分) — 团体程序设计天梯赛
  10. 简单整理 - 常用设计模式
  11. 低格硬盘用什么软件_视频号用什么剪辑软件好
  12. 36.windbg-!peb(手工分析PEB结构)
  13. VLAN中tagged与untagged的处理
  14. SCI-hub论文下载器(附下载方法)
  15. GitHub 新建的仓库如何导入老项目?
  16. 14年间,用友U9 cloud如何让众多“专精特新”成长为行业冠军
  17. 第五人格服务器维护中怎么进游戏,第五人格怎么开始 第五人格怎么进入游戏?[多图]...
  18. 现代信号处理笔计 4 线性估计
  19. 计算机组成原理——中央处理器cpu
  20. “二向箔”其实并不存在丨《三体》里的数学问题

热门文章

  1. 什么是arm-arm体系架构版本(指令集版本)-arm内核版本
  2. 小程序体验版跟测试版上传照片失败的问题 及图片上传的方法
  3. java实现用户注册邮箱激活验证
  4. linux中anaconda更换源
  5. 当你的华强北耳机掉水里了怎么办?怎么恢复音质?
  6. html5游戏测表,HTML5游戏 BrowserQuest 安装和测试运行
  7. 使用 GeForce Experience 更新 NVIDIA GPU 显卡驱动
  8. html js require函数,Require.js的基本用法详解
  9. ipmitool常用命令详解
  10. 2020云智中国西安站论坛顺利召开,天互数据董事长李亚娜致欢迎辞