news 2026/2/12 9:53:10

49、图像的相关知识

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
49、图像的相关知识

图像的分类

  • 按照颜色和灰度来分类,被分为4种基本分类
  • 二值图像: 只有01构成只有黑白两色
  • 灰度图像:[0,255] :0表示纯黑色,255表示纯白色。中间的就是黑到白的过渡色
  • 索引图像:二维矩阵 + 颜色索引矩阵map的二维数组(x3的),例如二维矩阵的值分为是0,255。则这个就是大小就是255 *3
  • 真彩RGB图像:红(R),绿(G),蓝(B)

图像的加载


一、整体流程(一句话版)

读图 → 转成数组 → 交给 matplotlib → 显示或处理

二、详细流程拆解

① 导入库

import matplotlib.pyplot as plt

② 读取图像(最关键一步)

img = plt.imread("cat.jpg")
这一步发生了什么?
  • 从磁盘读取图片文件(jpg / png / bmp 等)
  • 自动解码
  • 转成NumPy 数组

📌img的本质是:

numpy.ndarray

③ 图像在内存中的形式(非常重要)

彩色图像(RGB)
img.shape # (H, W, 3)
  • H:高度(像素)
  • W:宽度
  • 3:RGB 三个通道
灰度图
# (H, W)
像素值范围

图片格式

像素值

PNG

0 ~ 1(float)

JPG

0 ~ 255(uint8)


④ 显示图像

plt.imshow(img)

这一步做了什么?

  • NumPy 数组 → 映射成颜色
  • 默认:
    • RGB → 彩色
    • 单通道 → 伪彩色

⑤ 关闭坐标轴(可选)

plt.axis('off')

⑥ 真正显示窗口

plt.show()

📌没有plt.show(),图不会真正显示


三、完整最小示例(标准流程)

import matplotlib.pyplot as plt img = plt.imread("cat.jpg") # 1. 读图 plt.imshow(img) # 2. 显示 plt.axis('off') # 3. 去掉坐标 plt.show() # 4. 显示窗口

四、常见变体流程(你以后一定会用)

1️⃣ 显示灰度图

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

📌cmap= colormap(颜色映射)


2️⃣ 只读图,不显示(用于 CNN / PyTorch)

img = plt.imread("cat.jpg") # 后面直接送进模型

3️⃣ 和 OpenCV 的区别(容易踩坑)

工具

读取顺序

plt.imread

RGB

cv2.imread

BGR

所以 OpenCV 读的图用plt.imshow显示会颜色反了


五、在深度学习里的典型流程(结合你当前学习)

img = plt.imread("cat.jpg") # H W C img = img / 255.0 # 归一化 img = img.transpose(2, 0, 1) # C H W(PyTorch)

六、一句话总结(记住这个)

**plt.imread负责把图片 → NumPy 数组
plt.imshow负责把数组 → 图像
plt.show才是真正显示**

测试代码

import matplotlib.pyplot as plt import torch # 绘制全0,全1图像 def dm01(): img1 = torch.zeros(200,200,3) plt.imshow(img1) plt.show() img2 = torch.full((200, 200, 3), 255) plt.imshow(img2) plt.show() pass def dm02(): # 转成 NumPy 数组 img1 = plt.imread("../data/img.jpg") plt.imshow(img1) plt.show() print(f'img1.shape:{img1.shape}') img2 = plt.imread("../data/a.jpg") plt.imshow(img2) plt.show() print(f'img2.shape:{img2.shape}') #保存图像 plt.imsave("../data/女画像.png",img1) plt.imsave("../data/瞎子.png",img2) pass if __name__ == '__main__': dm01() dm02()

测试结果

D:\pythonDemo\.venv\Scripts\python.exe -X pycache_prefix=C:\Users\Administrator.SY-202408261506\AppData\Local\JetBrains\PyCharm2025.3\cpython-cache "D:/Software/PyCharm 2025.3/plugins/python-ce/helpers/pydev/pydevd.py" --multiprocess --qt-support=auto --client 127.0.0.1 --port 57594 --file D:\pythonDemo\demo\test29_images.py Connected to: <socket.socket fd=668, family=2, type=1, proto=0, laddr=('127.0.0.1', 57605), raddr=('127.0.0.1', 57594)>. Connected to pydev debugger (build 253.28294.336) img1.shape:(640, 640, 3) img2.shape:(737, 920, 3) Process finished with exit code 0

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/9 21:25:18

18.0环实现线程和进程的监控(ObRegisterCallbacks函数)-Windows驱动

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 上一个内容&#xff1a;17.过保护读内存&#xff08;通过内核&#xff08;驱动&#xff09;apc的方式附…

作者头像 李华
网站建设 2026/2/11 11:33:22

内容负责人必读:构建企业GEO优化体系的几大关键

在AI驱动的信息检索时代&#xff0c;GEO优化&#xff08;Generative Engine Optimization&#xff09; 已经成为品牌和内容负责人必须掌握的核心策略。与传统搜索引擎优化&#xff08;SEO&#xff09;侧重于提升网站在搜索结果页面中的排名不同&#xff0c;GEO优化专注于让内容…

作者头像 李华
网站建设 2026/2/10 16:08:59

Java毕设项目:基于SpringBoot+Vue技术的医院运营管理系统的设计与实现(源码+文档,讲解、调试运行,定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/2/9 7:33:54

拒绝宕机与丢包:电鱼智能 RK3568 应对工业 EMC 挑战的硬核加固方案

什么是 电鱼智能 RK3568&#xff1f;电鱼智能 RK3568 是一款专为工业控制与网关应用设计的核心计算平台。它搭载 4 核 A55 处理器&#xff0c;支持 ECC 内存纠错&#xff0c;内置 1TOPS NPU。其关键特性在于针对工业场景优化的引脚排布与电气特性&#xff0c;支持宽温工作&…

作者头像 李华