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]


相关推荐
linhhanpy5 分钟前
自制虚拟机(C/C++)(二、分析引导扇区,虚拟机读二进制文件img软盘)
c语言·汇编·c++·python·stm32·操作系统
西农小陈12 分钟前
Python-基于PyQt5,wordcloud,pillow,numpy,os,sys的智能词云生成器
开发语言·python·小程序·pycharm·numpy·pyqt·pillow
谢大旭20 分钟前
.Net Web API 访问权限限定
开发语言·c#
Kerwin要坚持日更1 小时前
一文讲解Java中的ArrayList和LinkedList
java·开发语言
慕雪华年1 小时前
【Linux】opencv在arm64上提示找不到libjasper-dev
linux·运维·opencv
Blockchina1 小时前
如何使用 DeepSeek 和 Dexscreener 构建免费的 AI 加密交易机器人?
人工智能·python·ai编程·deepseek
圆圆滚滚小企鹅。1 小时前
刷题记录 贪心算法-3:376. 摆动序列
笔记·python·算法·leetcode·贪心算法
Bran_Liu2 小时前
【LeetCode 刷题】回溯算法-组合问题
python·算法·leetcode
兮动人2 小时前
Golang 执行流程分析
开发语言·后端·golang·golang 执行流程分析