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中id函数运行方式

    python中id函数运行方式

    在本篇文章里小编给大家分享了关于python中id函数运行方式及相关实例,需要的朋友们可以参考下。
    2020-07-07
  • Python+Opencv实现图像模板匹配详解

    Python+Opencv实现图像模板匹配详解

    模板匹配可以看作是对象检测的一种非常基本的形式。使用模板匹配,我们可以使用包含要检测对象的“模板”来检测输入图像中的对象。本文为大家介绍了图像模板匹配的实现方法,需要的可以参考一下
    2022-09-09
  • Python定时器线程池原理详解

    Python定时器线程池原理详解

    这篇文章主要介绍了Python定时器线程池原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • python绘图中的 四个绘图技巧

    python绘图中的 四个绘图技巧

    在可视化数据时,通常需要在单个图形中绘制多个图形。 例如,如果您想从不同的角度可视化相同的变量如:数字变量的并排直方图和箱线图,则多个图形很有用。 在这篇文章中,我分享了绘制多个图形的 4 个简单但实用的技巧,具有一定的参考价值,需要的小伙伴可以参考一下
    2021-12-12
  • python导出mysql指定binlog文件实现demo

    python导出mysql指定binlog文件实现demo

    这篇文章主要介绍了python导出mysql指定binlog文件实现demo,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Pytorch保存模型用于测试和用于继续训练的区别详解

    Pytorch保存模型用于测试和用于继续训练的区别详解

    今天小编就为大家分享一篇Pytorch保存模型用于测试和用于继续训练的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python实现文件基本操作(打开、读写、关闭)的完整指南

    Python实现文件基本操作(打开、读写、关闭)的完整指南

    这篇文章主要为大家详细介绍了Python实现文件基本操作的相关知识,包括文件打开,读写,关闭等功能,w文中的示例代码讲解详细,有需要的小伙伴可以了解下
    2026-03-03
  • django中cookiecutter的使用教程

    django中cookiecutter的使用教程

    这篇文章主要给大家介绍了关于django中cookiecutter使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • python不支持i++运算原理实例解析

    python不支持i++运算原理实例解析

    这篇文章主要为大家介绍了python不支持 i++运算原理实例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-02-02
  • 进一步理解Python中的函数编程

    进一步理解Python中的函数编程

    这篇文章主要介绍了进一步理解Python中的函数编程,本文进一步讨论了Python中函数编程的一些要点,来自IBM官方技术文档,需要的朋友可以参考下
    2015-04-04

最新评论