1️⃣ 本章你将学会什么
学完这一章,你将能够:
- 明白计算机眼中的"图片"并不是照片,而是数字
- 亲手把一张图片读入 Python
- 看到图片在计算机中的真实形态(数字矩阵)
- 理解 RGB 三个颜色通道的含义
2️⃣ 问题引入:AI 是怎么看图片的?
人看一张图片,会直接看到"人、物体、颜色、场景"。
但计算机什么也看不到。
它看不到"猫",也看不到"人",它只能看到:
一大堆数字。
3️⃣ 核心概念
概念 1:像素(Pixel)
- 图片由很多个小点组成
- 每一个小点,叫做一个像素
- 每个像素都有一个位置(行、列)
你可以把图片理解成一张密密麻麻的表格。
概念 2:颜色其实是数字
一张普通彩色图片,通常由 三层数字 组成:
- 红色(R)
- 绿色(G)
- 蓝色(B)
每个像素点,其实存的是三组数字,例如:
R = 120
G = 200
B = 80
计算机并不知道这是"绿色偏亮",
它只知道:这里是三个数字。
概念 3:图片 = 数字矩阵
在计算机中,一张图片可以理解为:
一个三维数组(高度 × 宽度 × 颜色通道)
现在你只需要记住一句话即可:
图片在计算机里,本质就是数组。
4️⃣ 演示案例说明
本章我们要做什么?
我们将完成一个非常基础但非常重要的演示:
- 用 Python 读取一张图片
- 查看图片在计算机中的形状
- 把 RGB 三个通道拆开并显示
最终你会看到什么?
- 图片的尺寸
- 图片对应的数字矩阵
- 红、绿、蓝三个通道分别长什么样
5️⃣ 演示案例:用 Python "看见"图片的数字形态
第一步:准备环境
你只需要安装以下库:
bash
pip install pillow matplotlib numpy
第二步:读取一张图片
准备一张任意图片,例如 test.jpg,和代码放在同一目录。
python
from PIL import Image
import numpy as np
# 读取图片
img = Image.open("test.jpg")
# 转成 numpy 数组
img_array = np.array(img)
print("图片类型:", type(img))
print("数组形状:", img_array.shape)
可能的输出示例:
图片类型: <class 'PIL.JpegImagePlugin.JpegImageFile'>
数组形状: (480, 640, 3)
解释:
- 480:高度(行)
- 640:宽度(列)
- 3:RGB 三个颜色通道
第三步:看看图片里的"数字"
python
# 查看左上角第一个像素
pixel = img_array[0, 0]
print("第一个像素的 RGB 数值:", pixel)
可能输出:
第一个像素的 RGB 数值: [123 200 45]
这就是计算机眼中的"颜色"。
第四步:拆分 RGB 三个通道并显示
python
import matplotlib.pyplot as plt
# 拆分通道
red_channel = img_array[:, :, 0]
green_channel = img_array[:, :, 1]
blue_channel = img_array[:, :, 2]
# 显示
plt.figure(figsize=(10, 3))
plt.subplot(1, 3, 1)
plt.title("Red Channel")
plt.imshow(red_channel, cmap="gray")
plt.axis("off")
plt.subplot(1, 3, 2)
plt.title("Green Channel")
plt.imshow(green_channel, cmap="gray")
plt.axis("off")
plt.subplot(1, 3, 3)
plt.title("Blue Channel")
plt.imshow(blue_channel, cmap="gray")
plt.axis("off")
plt.show()
你会看到三张灰度图。
这说明一件非常重要的事情:
彩色图片,其实是三张"灰度图"叠加而成的。



6️⃣ 结果解读
通过这个演示,你应该形成以下直觉:
- 图片 ≠ 照片
- 图片 = 数字 + 位置
- AI 处理图片,本质是在处理大量数字
- 后面所谓的"训练模型",就是在学习这些数字的规律
7️⃣ 本章小结
- 计算机"看图",看到的是数组
- 颜色是数字,不是感觉
- RGB 是最常见的图片表示方式
- 你已经完成了图像识别学习的第一步