OpenCV多摄像头同步调用与帧处理实战 - 第2节
2. 摄像头基础
摄像头成像原理 · 分辨率与帧率 · 色彩空间(RGB、YUV、HSV)
2.1 摄像头成像原理
摄像头通过镜头将光线聚焦到图像传感器上,传感器将光信号转换为电信号,再经过模数转换(ADC)生成数字图像。核心部件包括:
- 镜头(Lens):控制光线进入量,决定视场角和景深。
- 图像传感器(Sensor):CCD 或 CMOS,将光子转换为电子。
- ISP(图像信号处理器):去马赛克、白平衡、降噪、色彩校正。
💡 核心要点: 摄像头成像本质是“光 → 电 → 数字”的转换。ISP 对原始 RAW 数据进行插值、白平衡、伽马校正等,最终输出标准色彩空间。
2.2 分辨率与帧率
分辨率 表示图像包含的像素数量,常见规格:
| 分辨率名称 | 像素尺寸 | 总像素(约) | 典型应用 |
|---|---|---|---|
| VGA | 640 × 480 | 0.3 MP | 老式摄像头、嵌入式 |
| HD | 1280 × 720 | 0.9 MP | 网络直播、视频通话 |
| Full HD | 1920 × 1080 | 2.1 MP | 安防监控、消费级 |
| 4K UHD | 3840 × 2160 | 8.3 MP | 工业检测、医疗影像 |
帧率(FPS) 表示每秒采集的图像帧数。帧率与分辨率相互制约:
- 高分辨率 → 单帧数据量大 → 带宽/处理压力大 → 帧率受限。
- 高帧率(如 60/120 fps)适合运动捕捉、高速检测。
- USB 3.0 / GbE 接口可支持 1080p@60fps 或 4K@30fps。
⚡ 实战建议: 多摄像头系统中,建议根据任务平衡分辨率与帧率。例如:运动检测用 720p@30fps,车牌识别用 1080p@15fps。
2.3 色彩空间(RGB、YUV、HSV)
色彩空间是颜色表示的数学模型。摄像头和计算机视觉中最常用的三种:
🔴 RGB 色彩空间
由红(R)、绿(G)、蓝(B)三通道叠加,每个通道 0-255(8bit)。适用于显示、存储。但通道间相关性高,不适合直接做颜色分析。
🎞️ YUV 色彩空间
亮度分量 Y 与色度分量 U、V 分离。人眼对亮度更敏感,因此可对 UV 子采样(如 YUV420)压缩数据。摄像头原始输出多为 YUV 格式。
| 分量 | 含义 | 范围 |
|---|---|---|
| Y | 亮度(Luma) | 16 ~ 235 |
| U (Cb) | 蓝色色度 | 16 ~ 240 |
| V (Cr) | 红色色度 | 16 ~ 240 |
🎨 HSV 色彩空间
色调(Hue)、饱和度(Saturation)、明度(Value)。更接近人类感知,常用于颜色分割、目标跟踪。
- H:0°~180°(OpenCV 中),表示颜色类型。
- S:0~255,颜色纯度。
- V:0~255,亮度/明度。
📌 色彩空间转换(OpenCV 示例):
import cv2
# 读取 BGR 图像(OpenCV 默认 BGR)
img_bgr = cv2.imread('frame.jpg')
# 转换为 RGB
img_rgb = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB)
# 转换为 YUV
img_yuv = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2YUV)
# 转换为 HSV
img_hsv = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2HSV)