第2章 图像基础回顾

像素 · 灰度图 · 二值图 · 色彩空间 (RGB/HSV/LAB) 与边缘检测

1. 像素 —— 数字图像的最小单元

每个像素存储亮度或颜色信息。灰度图每个像素为 0~255 的标量;彩色图通常由多个通道组成。边缘检测本质上是分析像素邻域内的突变。

像素矩阵 (5×5 灰度块) 每个方格 = 一个像素 (强度值 0-255)

2. 灰度图与二值图

灰度图 (Grayscale)

单通道,每个像素亮度 0(黑)~255(白)。边缘检测常用灰度图作为输入,因为亮度梯度直接反映边缘强度。

二值图 (Binary)

仅 0 和 255 (或 0/1)。通过阈值分割得到,常用于轮廓查找、形态学操作。边缘检测结果常通过阈值转化为二值边缘图。

灰度图 二值图

3. 色彩空间及其在边缘检测中的作用

色彩空间通道说明边缘检测适用性
RGB红、绿、蓝三通道,强相关直接对亮度不敏感;彩色边缘可分解各通道分别检测
HSV色调(H)、饱和度(S)、明度(V)V通道分离光照,适合光照不均场景;H/S用于颜色边缘
LAB亮度(L)、绿-红(a)、蓝-黄(b)L通道感知均匀,欧氏距离代表色差;边缘检测更符合人眼
💡 核心观点: 边缘检测通常将彩色图像转为灰度或提取亮度通道(如 HSV-V、LAB-L),以消除色度噪声,但保留颜色边缘可检测特定目标。
色彩空间转换 · 边缘检测流程 RGB 图像 色彩空间 (HSV / LAB) 亮度通道 (V / L) 边缘检测 分离亮度 → 减少色度干扰 → 提取梯度边缘

4. 为什么色彩空间对边缘检测重要?

  • RGB 通道间相关性高,直接灰度化可能丢失微弱边缘;但彩色边缘(如红绿交界)在单通道中可能不明显。
  • HSV 的 V 通道对光照变化鲁棒,适合阴影环境;H 通道可检测颜色跳变边缘。
  • LAB 的 L 通道与人类亮度感知一致,a/b 通道用于检测色度边缘,在纹理分析中表现优异。
不同色彩空间下的边缘响应示意 RGB 灰度 边缘较杂 HSV-V 光照不变边缘 LAB-L 感知均匀边缘

5. 代码速览:OpenCV 色彩空间转换与边缘检测

import cv2
import numpy as np

# 读取图像 (BGR)
img = cv2.imread('example.jpg')

# 转为灰度
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 转为 HSV,取 V 通道
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
v_channel = hsv[:, :, 2]

# 转为 LAB,取 L 通道
lab = cv2.cvtColor(img, cv2.COLOR_BGR2LAB)
l_channel = lab[:, :, 0]

# 使用 Canny 边缘检测 (基于灰度)
edges_gray = cv2.Canny(gray, 50, 150)
edges_v = cv2.Canny(v_channel, 50, 150)
edges_l = cv2.Canny(l_channel, 50, 150)

6. 图像类型与边缘检测适配性

图像类型通道数边缘检测常用策略典型应用
灰度图1直接计算梯度经典边缘检测
二值图1形态学梯度 / 轮廓查找文档分析、轮廓提取
RGB 彩色3各通道分别检测或转亮度彩色边缘保留
HSV3V 通道边缘 + H/S 颜色边缘光照鲁棒场景
LAB3L 通道亮度边缘 + ab 色度边缘感知一致分割

要点 理解像素与色彩空间是边缘检测的基石,后续章节将基于这些概念构建梯度与算子。