建设内网网站流程做网站 使用权 所有权
python | OpenCV小记(一):cv2.imread(f)读取图像操作
- 1. 为什么 `[:, :, 0]` 提取的是第一个通道(B 通道)?
- OpenCV 的通道存储格式
- 索引操作 `[:, :, 0]` 的解释
- 常见误解
1. 为什么 [:, :, 0] 提取的是第一个通道(B 通道)?
OpenCV 的通道存储格式
OpenCV 默认读取的图像是 BGR 格式,即通道顺序为 Blue(蓝)、Green(绿)、Red(红)。
当使用 cv2.imread(f) 读取图像时,返回的数组形状为 (H, W, 3),其中:
H是图像高度(Height),W是图像宽度(Width),3是通道数(B、G、R)。
索引操作 [:, :, 0] 的解释
- 维度顺序:OpenCV 返回的数组是
(H, W, C),即第三个维度(索引为2)对应通道。 [:, :, 0]的含义::表示保留所有行(高度)和列(宽度),0表示取第三个维度(通道维度)的第一个通道,即 B 通道。
- 结果:通过
[:, :, 0]提取 B 通道后,图像变为单通道(灰度图),形状为(H, W)。
常见误解
用户可能误以为 [:, :, 0] 是对第三个通道赋值为0,但实际上这是 索引操作,不是赋值操作。
如果目标是提取 R 通道(红色),应使用 [:, :, 2]。
