news 2026/4/16 12:31:08

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/4/16 10:16:53

【技术报告解读】DeepSeek-OCR: Contexts Optical Compression

Abstract 我们提出了 DeepSeek-OCR&#xff0c;作为通过光学二维映射压缩长上下文可行性的初步探索。DeepSeek-OCR 由两个组件构成&#xff1a;DeepEncoder 和作为解码器的 DeepSeek3B-MoE-A570M。具体而言&#xff0c;DeepEncoder 作为核心引擎&#xff0c;旨在在高分辨率输入…

作者头像 李华
网站建设 2026/4/16 9:26:28

探索 COMSOL 激光熔覆模型在同轴送粉中的应用

COMSOL激光熔覆模型同样适合同轴送粉&#xff0c;各种参数可改&#xff0c; 含制作教程视频。最近在研究激光熔覆技术&#xff0c;发现了一个超棒的 COMSOL 激光熔覆模型&#xff0c;它竟然同样适用于同轴送粉&#xff0c;而且各种参数都可以进行修改&#xff0c;简直太实用啦&…

作者头像 李华
网站建设 2026/4/13 8:39:32

Windows系统文件Search.ProtocolHandler.MAPI2.dll损坏 下载修复方法

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/4/15 11:43:50

(新卷,100分)- 单词加密(Java JS Python)

(新卷,100分)- 单词加密&#xff08;Java & JS & Python&#xff09;题目描述1、输入一个英文句子&#xff0c;句子中包含若干个单词&#xff0c;每个单词间有一个空格&#xff1b;2、需要将句子中的每个单词按照要求加密输出。要求&#xff1a;1&#xff09;单词中包括…

作者头像 李华