Matplotlab显示OpenCV读取到的图像

一. 确认图像的数组类型

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

读取模式 标志
灰度 cv2.IMREAD_GRAYSCALE 0
彩色(忽略透明度通道) cv2.IMREAD_COLOR 1
彩色(包括 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格式,或者相反。

Copyright 2025 Log All rights reserved.

Matplotlab显示OpenCV读取到的图像的更多相关文章

  1. 使用QT显示OpenCV读取的图片

    目录 1. 概述 2. 实现 2.1. 代码 2.2. 解析 3. 结果 1. 概述 OpenCV自带了一部分常用的GUI功能,但是更多的图像处理功能需要其他GUI框架来辅助实现,这里通过QT来显示O ...

  2. openCV学习——一、图像读取、显示、输出

    openCV学习——一.图像读取.显示.输出   一.Mat imread(const string& filename,int flags=1),用于读取图片 1.参数介绍 filename ...

  3. [实例]ROS使用OpenCV读取图像并发布图像消息在rviz中显示

    思路: (1)使用opencv读取本地图像 (2)调用cv_bridge::CvImage().toImageMsg()将本地图像发送给rviz显示 一.使用opencv读取本地图像并发布图像消息 ( ...

  4. [OpenCV学习笔记3][图像的加载+修改+显示+保存]

    正式进入OpenCV学习了,前面开始的都是一些环境搭建和准备工作,对一些数据结构的认识主要是Mat类的认识: [1.学习目标] 图像的加载:imread() 图像的修改:cvtColor() 图像的显 ...

  5. python中用opencv读取并显示图片

    一.读取并显示图片: import matplotlib.pyplot as plt # plt 用于显示图片 import matplotlib.image as mpimg # mpimg 用于读 ...

  6. 吴裕雄--天生自然python学习笔记:python用OpenCV 读取和显示图形

    Open CV 是一个开源.跨平台的计算机视觉库,它可 以在商业和研究领域中免费使用,目前已广泛应用于人机 互动.人脸识别.动作识别.运动跟踪等领域. 要识别特定的图像,最重要的是要有识别对象的特征 ...

  7. Imagelab-0-QT label显示 opencv 图像

    Imagelab-0-QT label显示 opencv 图像 opencvc++qtimagelab 开始之前 这其实也是opencv 处理图像的系列, 只是想我们在进一步复杂化我们的代码之前, 每 ...

  8. [OpenCV Qt教程] 在Qt图形界面中显示OpenCV图像的OpenGL Widget(第二部分)

    本文译自:http://www.robot-home.it/blog/en/software/tutorial-opencv-qt-opengl-widget-per-visualizzare-imm ...

  9. [OpenCV Qt教程] 在Qt图形界面中显示OpenCV图像的OpenGL Widget (第一部分)

    本文译自:http://www.robot-home.it/blog/en/software/tutorial-opencv-qt-opengl-widget-per-visualizzare-imm ...

  10. OpenCV读取图像问题:OpenCV(3.4.3) D:\Build\OpenCV\opencv-size.width0 && size.height0 in function 'cvimshow'

    版权声明:本文为博主原创文章,转载 请注明出处:https://blog.csdn.net/sc2079/article/details/83280067 - 问题与解决 最近正在学OpenCV,发现 ...

随机推荐

  1. 使用MySQL Shell 8.4.1-LTS 直接将数据复制到 MySQL实例

    在之前的文章中,我谈到了如何使用 MySQL Shell 通过多线程过程来转储和加载数据,以及如何以不同格式导出表数据,然后可以将这些数据导入到新的 MySQL 实例中.这篇文章将讨论我们如何直接将数 ...

  2. 个人wiki

    1:记录自己的知识体系 2:轻量级wiki系统(排除XWiki) 3:开源 4:支持通用wiki语法(排除dokuwiki) 5:有好的编辑器(排除MediaWiki) 6:最好是java,或者php ...

  3. elasticsearch之python操作

    总结使用python对于elasticsearch的常用操作 安装 pip install elasticsearch 2. 连接 from elasticsearch import Elastics ...

  4. uni-app PDA扫描

    1.前言 PDA扫码是工厂项目中是非常常见的功能,这里记录下工作中的开发思路和模板,仅供参考 PDA扫码模式:模拟输入和广播模式 模拟输入:模拟键盘输入,一般后面会设置追加一个回车,优点是通用型强,缺 ...

  5. json数据对接

    1.前言 fastadmin框架本身封装了一系列接口和插件来对表格数据进行管理(新增,编辑,删除),但是其使用的bootstrapTable基于jquery开发,基于某些原因,我们想要使用Vue框架代 ...

  6. Day01 Markdown 学习笔记

    Day01 Markdown 学习笔记 1.标题 n级标题 = n个"#" + 空格 + 标题名称 (最多6个) 2.文本 Hello World ​ Hello World ​ ...

  7. Axios 面试题 (2023-09-15更新)

    有封装过 axios 么?封装一个 axios? import axios from 'axios' // 创建axios实例 const service = axios.create({ baseU ...

  8. django数据库反向迁移

    目录 django数据库反向迁移 步骤一:连接MySQL 方式一:使用pymysql连接 方式二:使用mysqlclient连接 步骤二:迁移数据库 正向迁移(通过类创建表) 反向迁移(通过表创建类) ...

  9. Linux NAS存储、文件共享

    Linux NAS存储之CIFS CIFS是Windows和Unix系统之间共享文件的一种协议,客户端通常是Windwos等.支持多节点同时挂载以及并发写入 1.服务器端操作(存储端) 1.1.服务器 ...

  10. 关于 K8s 的一些基础概念整理-补充【k8s系列之五】

    〇.前言 本文继续整理下 K8s 的一些基础概念,作为前一篇概念汇总的补充. 前一篇博文链接:https://www.cnblogs.com/hnzhengfy/p/k8s_concept.html. ...