news 2026/6/23 15:09:32

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/6/17 13:22:38

千匠大宗电商系统:赋能煤炭能源行业产业升级

在全球能源结构转型与数字技术深度融合的时代背景下&#xff0c;能源煤炭行业正迎来一场深刻的供应链变革。传统交易模式中信息不对称、交易链条长、融资难、物流协同效率低等痛点&#xff0c;已成为制约行业高质量发展的关键瓶颈。千匠大宗电商系统致力于为煤炭能源大宗商品交…

作者头像 李华
网站建设 2026/6/15 8:42:31

硬件有限,如何部署“大”模型?AMCT模型压缩工具3步解忧

我们在谈论AI大模型时&#xff0c;一方面会为其在逻辑推理、问题回答等各种任务中的表现出色而惊叹&#xff0c;另一方面也会为其巨大存储和海量计算而“头疼”。模型尺寸的不断增长确实给模型部署带来了极大的挑战&#xff0c;动辄几十GB&#xff0c;上百GB甚至上千GB的存储量…

作者头像 李华
网站建设 2026/6/23 4:49:33

【毕业设计】基于SpringBoot+Vue技术的医院运营管理系统的设计与实现(源码+文档+远程调试,全bao定制等)

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

作者头像 李华
网站建设 2026/6/17 2:42:01

Java毕设选题推荐:基于SpringBoot的非遗产品交流销售平台的设计与实现基于springboot的非遗文化传承与推广平台系统【附源码、mysql、文档、调试+代码讲解+全bao等】

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

作者头像 李华
网站建设 2026/6/12 21:08:44

学长亲荐8个AI论文平台,本科生毕业论文轻松搞定!

学长亲荐8个AI论文平台&#xff0c;本科生毕业论文轻松搞定&#xff01; 论文写作的“隐形助手”&#xff1a;AI 工具如何改变你的毕业之路 在当今这个信息爆炸的时代&#xff0c;高校学生的论文写作压力与日俱增。无论是选题、大纲搭建&#xff0c;还是内容撰写和查重降重&…

作者头像 李华
网站建设 2026/6/13 7:59:49

当花朵学会组团解题:新型花授粉算法的暴力美学

新授粉方式的花授粉算法 该算法采用惯性权重、两组随机个体差异矢量和Lvy机制构建新的全局搜索策略&#xff0c;提高算法的全局探索能力&#xff1b;利用信息共享机制、FPA/rand/1和FPA/best/2融合的局部搜索策略&#xff0c;增强算法的局部开发能力&#xff1b;运用基于高斯变…

作者头像 李华