Matplotlab显示OpenCV读取到的图像

 更新时间:2025年02月04日 09:29:42   作者:Return-Log  
本文介绍了如何使用OpenCV和Matplotlib处理图像,本文通过实例讲解的非常详细,对Matplotlab OpenCV图像相关处理方法感兴趣的朋友一起看看吧

一. 确认图像的数组类型

在使用 OpenCV 的 cv2.imread() 函数读取图像时,第二个参数(标志)决定了图像的读取方式。具体来说,01 和 -1 分别对应不同的读取模式:

读取模式标志
灰度cv2.IMREAD_GRAYSCALE0
彩色(忽略透明度通道)cv2.IMREAD_COLOR1
彩色(包括 Alpha 透明度通道,如果存在)cv2.IMREAD_UNCHANGED-1

这里不讨论处理包含透明度通道的图像

使用 img.shape 判断图像类型

在 OpenCV 中,当你使用 cv2.imread() 函数读取一张图像时,它会将图像加载到内存中,并将其存储为一个 NumPy 数组。img.shape 是 NumPy 数组的一个属性,它返回一个包含数组各维度大小的元组。通过检查这个元组的长度(即维度的数量),我们可以确定数组的类型或结构。

  • 灰度图像:通常是一个二维数组,表示为 (height, width), img.shape 返回的元组长度为 2。
  • 彩色图像:通常是一个三维数组,表示为 (height, width, channels), channels 表示颜色通道的数量(例如 RGB 图像有三个通道,形状通常是 (height, width, 3)), img.shape 返回的元组长度为 3。
# img 是一个 NumPy 数组
if len(img.shape) == 2:
    print("这是一个灰度图像")
elif len(img.shape) == 3:
    print("这是一个彩色图像")

二. 使用Matplotlab显示

灰度图像

plt.imshow(img, cmap='gray')

理解cmap='gray'

直接imshow 会使用默认的颜色映射(通常是 viridis),这通常不是期望的灰度效果。需要明确指定颜色映射 (cmap) 为 'gray',这样可以确保图像中的每个像素值都被正确地映射到灰度级别。

彩色图像

OpenCV读取到的色彩通道顺序为BGR, Matplotlab读取显示的色彩通道为RGB,所以需要读取时转换通道

plt.imshow(img[:, :, ::-1])

理解 img[:, :, ::-1]

第一维和第二维分别代表图像的高度和宽度,第三维有三个通道:红(R)、绿(G)、蓝(B)

  • : 表示选取所有元素。
  • ::-1 是Python中的切片语法,表示从尾到头(逆序)选择元素。这里的意图通常是翻转最后一个维度的数据,比如将RGB格式转换为BGR格式,或者相反。

到此这篇关于Matplotlab显示OpenCV读取到的图像的文章就介绍到这了,更多相关Matplotlab OpenCV图像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python如何实现 HTTP echo 服务器

    Python如何实现 HTTP echo 服务器

    本文介绍了如何使用Python实现一个简单的HTTPecho服务器,该服务器支持GET和POST请求,并返回JSON格式的响应,GET请求返回请求路径、方法、头和查询字符串,POST请求还返回请求体内容,服务器的使用方法和测试示例也一并提供,感兴趣的朋友跟随小编一起看看吧
    2025-01-01
  • 《Python学习手册》学习总结

    《Python学习手册》学习总结

    本篇文章是读者朋友在学习了《Python学习手册》这本书以后,总结出的学习心得,值得大家参考学习。
    2018-01-01
  • Python3.10中match-case的用法和示例详解

    Python3.10中match-case的用法和示例详解

    在 Python 3.10 中引入了新的 match-case 语法,它是一种用于模式匹配的结构,下面小编就来和大家简单聊聊match-case的用法和示例吧,有需要的小伙伴可以参考下
    2023-10-10
  • python_array[0][0]与array[0,0]的区别详解

    python_array[0][0]与array[0,0]的区别详解

    今天小编就为大家分享一篇python_array[0][0]与array[0,0]的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python实现批量压缩图片

    Python实现批量压缩图片

    这篇文章主要为大家详细介绍了Python实现批量压缩图片的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • python动态加载变量示例分享

    python动态加载变量示例分享

    这篇文章主要介绍了python动态加载变量示例,需要的朋友可以参考下
    2014-02-02
  • Python基于递归实现电话号码映射功能示例

    Python基于递归实现电话号码映射功能示例

    这篇文章主要介绍了Python基于递归实现电话号码映射功能,结合实例形式分析了Python针对字典的递归、遍历相关操作技巧,需要的朋友可以参考下
    2018-04-04
  • Python常见排序操作示例【字典、列表、指定元素等】

    Python常见排序操作示例【字典、列表、指定元素等】

    这篇文章主要介绍了Python常见排序操作,结合实例形式总结分析了Python针对字典、列表及指定元素等常见排序操作实现技巧,需要的朋友可以参考下
    2018-08-08
  • Python实现一个简单的QQ截图

    Python实现一个简单的QQ截图

    大家好,本篇文章主要讲的是Python实现一个简单的QQ截图,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下的相关资料
    2022-02-02
  • Python如何转换字符串大小写

    Python如何转换字符串大小写

    在本篇文章里小编给大家整理的是关于Python转换字符串大小写代码和实例,需要的朋友们可以参考下。
    2020-06-06

最新评论