python | OpenCV小记(一):cv2.imread(f) 读取图像操作(待更新)

python | OpenCV小记(一):cv2.imread(f)读取图像操作

      • [1. 为什么 `[:, :, 0]` 提取的是第一个通道(B 通道)?](#1. 为什么 [:, :, 0] 提取的是第一个通道(B 通道)?)
        • [OpenCV 的通道存储格式](#OpenCV 的通道存储格式)
        • [索引操作 `[:, :, 0]` 的解释](#索引操作 [:, :, 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]


相关推荐
Kyln.Wu10 分钟前
【python实用小脚本-169】『Python』所见即所得 Markdown 编辑器:写完即出网页预览——告别“写完→保存→刷新”三连
开发语言·python·编辑器
爱掉发的小李14 分钟前
Linux 环境下 Docker 安装与简单使用指南
java·linux·运维·c++·python·docker·php
静谧之心34 分钟前
Go 工程化全景:从目录结构到生命周期的完整服务框架
开发语言·golang·channel·工程化·goroutine
爱编程的鱼1 小时前
计算机(电脑)是什么?零基础硬件软件详解
java·开发语言·算法·c#·电脑·集合
惜.己1 小时前
selenium获取元素 出现的错误AttributeError: ‘TestPage‘ object has no attribute ‘driver‘
python·selenium·pycharm
猫头虎2 小时前
如何在 macOS 上使用 dnsmasq 搭建本地 DNS 缓存/转发
开发语言·macos·缓存·golang·beautifulsoup·beego·go1.19
LetsonH2 小时前
⭐CVPR2025 FreeUV:无真值 3D 人脸纹理重建框架
人工智能·python·深度学习·计算机视觉·3d
蹦蹦跳跳真可爱5892 小时前
Python----大模型(大模型微调--BitFit、Prompt Tuning、P-tuning、Prefix-tuning、LORA)
人工智能·python·深度学习·自然语言处理·transformer
Monkey的自我迭代2 小时前
决策树分类实战:从数据到模型优化
python·决策树·机器学习
DONG9132 小时前
Python 中的可迭代、迭代器与生成器——从协议到实现再到最佳实践
开发语言·汇编·数据结构·python·算法·青少年编程·排序算法