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

这篇具有很好参考价值的文章主要介绍了【OpenCV 例程300篇】04. 用 matplotlib 显示图像(plt.imshow)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

专栏地址:『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) -> Gray

    plt.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’,灰度图像的颜色显示异常。

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


(本节完)


版权声明:
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)文章来源地址https://www.toymoban.com/news/detail-443561.html

到了这里,关于【OpenCV 例程300篇】04. 用 matplotlib 显示图像(plt.imshow)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Plt图片不显示,不弹出,Pycharm图片独立显示与imshow()无法显示

    问题一:Pycharm 图片在独立窗口显示(或者是图片压根不显示) pycharm从2017.3版之后,将 matplotlib 的绘图的结果默认显示在 SciView 窗口中, 而不是弹出独立的窗口。可以通过如下方式修改,弹出独立窗口 File | Settings | Tools | Python Scientific | Show plots in tool window 取消勾选 问题二:py

    2024年02月13日
    浏览(44)
  • 【OpenCV 例程 300篇】257.OpenCV 生成随机矩阵

    『youcans 的 OpenCV 例程300篇 - 总目录』 OpenCV 中提供了 cv.randn 和 cv.randu 函数生成随机数矩阵,也可以用于创建随机图像。 函数 cv.randn 生成的矩阵服从正态分布,函数 cv.randu 生成的矩阵服从均匀分布 函数说明: cv.randn(dst, mean, stddev[, ]) → dst,生成正态分布矩阵 cv.randu(dst, lo

    2023年04月24日
    浏览(41)
  • 【OpenCV 例程 300篇】251. 特征匹配之暴力匹配

    『youcans 的 OpenCV 例程300篇 - 总目录』 特征匹配是特征检测和特征描述的基本应用,在在图像拼接、目标识别、三维重建等领域的应用非常广泛。 基于特征描述符的特征点匹配是通过对两幅图像的特征点集合内的关键点描述符的相似性比对来实现的。分别对参考图像(Refere

    2024年02月02日
    浏览(32)
  • 解决VScode远程服务器时opencv和matplotlib无法直接显示图像的问题

    问题描述 :在VSCode中通过SSH连接服务器,使用cv2.imshow或plt.show()无法显示图像。 并且VScode与MobaXterm可以ssh到远程服务器 参数说明: 保持MobaXterm开启的状态下,在VSCode中运行xclock,会显示一个时钟。

    2024年02月14日
    浏览(31)
  • 【Python】matplotlib设置图片边缘距离和plt.lengend图例放在图像的外侧

    我有这样一串代码: 我们得到的图像为: loc :图例位置,可取(‘best’, ‘upper right’, ‘upper left’, ‘lower left’, ‘lower right’, ‘right’, ‘center left’, ‘center , right’, ‘lower center’, ‘upper center’, ‘center’) ;若是使用了bbox_to_anchor,则这项就无效了; fontsize :int或flo

    2024年02月16日
    浏览(31)
  • 【OpenCV 例程 300篇】223. 特征提取之多边形拟合(cv.approxPolyDP)

    『youcans 的 OpenCV 例程200篇 - 总目录』 目标特征的基本概念 通过图像分割获得多个区域,得到区域内的像素集合或区域边界像素集合。我们把感兴趣的人或物称为目标,目标所处的区域就是目标区域。 特征通常是针对于图像中的某个目标而言的。图像分割之后,还要对目标区

    2024年02月04日
    浏览(37)
  • SSH通过VSCode远程访问服务器Opencv和matplotlib等无法直接显示图像问题

    需求描述: 在VSCode中通过SSH连接服务器,使用cv2.imshow或plt.show()无法显示图像。 解决思路如下: 1、首先查看与服务器之间的网络连接问题(百分之九十问题就是出在第一步骤,哈哈哈) 在本地端打开cmd,使用指令ping xxx.xxx.xxx.xxx,其中(xxx.xxx.xxx.xxx为服务器的IP地址) 在

    2024年02月15日
    浏览(36)
  • 【Python plt.imshow函数及其参数详解】

    plt.imshow() 函数是Matplotlib库中的一个函数,主要用于显示图像或矩阵数据。它可以将矩阵数据渲染成图像,并支持许多参数来调整图像的外观和行为。通常情况下将其用于显示图像文件或处理图像数据。 要显示一张图像,我们需要读取图像文件,并使用 plt.imshow() 函数来显示

    2024年03月10日
    浏览(74)
  • plt.imshow()中cmap参数控制颜色展示

    plt.imshow()中cmap参数控制颜色展示 以A = [[0,1,2],[3,4,5],[6,7,8]]为例进行展示 plt.imshow(A, cmap=“xxx”)其中xxx在每个图片右侧有显示,展示顺序为首字母“z-a”排序: ‘Accent’, ‘Accent_r’, ‘Blues’, ‘Blues_r’, ‘BrBG’, ‘BrBG_r’, ‘BuGn’, ‘BuGn_r’, ‘BuPu’, ‘BuPu_r’, ‘CMRmap’, ‘

    2024年02月12日
    浏览(29)
  • 解决opencv中使用cv2.imshow不显示图片问题

    在使用opencv中的cv2.imshow显示图片的时候总会出现如下错误: The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function ‘cvShowImage’ 查找了很多资料发现是在安装opencv的时

    2024年02月07日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包