第2章 · 图像基础

数字图像表示 · 像素与色彩空间 (RGB / HSV / YUV) · 图像直方图

📷 数字图像表示 连续→离散

数字图像由像素 (pixel) 构成,每个像素存储亮度/颜色信息。灰度图像每个像素为 0–255 的标量;彩色图像通常为多通道。图像分辨率 = 宽度 × 高度 (像素)。

数字图像表示 (M×N 像素矩阵) f(0,0) … 每个像素 0~255 灰度图像:单通道矩阵 | 彩色图像:多通道 (R,G,B) 堆叠
# 数字图像本质:NumPy 数组 (H, W) 或 (H, W, C)
import numpy as np
gray_img = np.random.randint(0, 256, (480, 640), dtype=np.uint8)
color_img = np.random.randint(0, 256, (480, 640, 3), dtype=np.uint8)

🎨 像素与色彩空间 RGB / HSV / YUV

像素是图像的最小采样单元。色彩空间定义了如何用数值表示颜色。常用空间:

色彩空间通道特点
RGBR (红), G (绿), B (蓝)面向显示设备,通道高度相关
HSVH (色相), S (饱和度), V (明度)更接近人类感知,适合颜色分割
YUV / YCbCrY (亮度), U/Cb (蓝色差), V/Cr (红色差)亮度与色度分离,视频压缩常用
色彩空间转换示意 RGB HSV 色锥 YUV (Y亮度) 转换公式:RGB ↔ HSV / RGB ↔ YUV 均为线性或分段变换
# OpenCV 色彩空间转换 (Python)
import cv2
img_bgr = cv2.imread('image.jpg')
img_hsv = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2HSV)
img_yuv = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2YUV)

📊 图像直方图概念 亮度分布

直方图统计每个灰度级 (0–255) 的像素个数,反映图像对比度、亮度分布。横轴:灰度值,纵轴:频数。累积直方图用于均衡化。

灰度直方图示例 (256 bins) 0 128 255 暗图像 → 直方图集中在左侧;亮图像集中在右侧;对比度高则分布宽
# 使用 OpenCV 计算直方图
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('image.jpg', 0)  # 灰度
hist = cv2.calcHist([img], [0], None, [256], [0,256])
plt.plot(hist, color='#2563eb')
plt.title('灰度直方图')
plt.xlabel('像素值')
plt.ylabel('频数')

直方图应用: 直方图均衡化、对比度拉伸、阈值分割、色调映射等。