OpenCV 中 cv::split() 的最基础用法

OpenCV 中 cv::split() 的最基础用法

一、cv::split() 是干什么的?

一句话:把一张多通道图像,拆成好几个单通道图像。

比如:

  • 3通道彩色图(RGB/BGR) → 拆成 R、G、B 三张灰度图
  • 4通道带透明度 → 拆成 R、G、B、A

二、最基本用法(标准格式)

cpp 复制代码
// 把 image 拆分成多个单通道图像,放进 channels 里
void cv::split(
    const cv::Mat& image,          // 输入:多通道图像(比如3通道彩色图)
    std::vector<cv::Mat>& channels // 输出:每个单通道图像(vector装)
);

三、超级简单例子(一看就会)

例子1:把彩色图拆成 R、G、B

cpp 复制代码
// 1. 读取一张彩色图片
cv::Mat image = cv::imread("test.jpg");  // 3通道 BGR

// 2. 创建一个vector,用来装拆出来的3个通道
vector<cv::Mat> channels;

// 3. 拆分!
cv::split(image, channels);

// 现在:
// channels[0] = B 通道(灰度图)
// channels[1] = G 通道(灰度图)
// channels[2] = R 通道(灰度图)

结果:

一张彩色图 → 变成 三张灰度图


四、另一种写法(数组写法)

你代码里用的就是这种:

cpp 复制代码
cv::Mat channels[3];
cv::split(image, channels);

效果完全一样,只是用数组存。


五、最重要的知识点(你必须懂)

split 做了什么?

输入图像(3通道)的内存排布:

复制代码
B G B G B G B G ...

split 之后:

复制代码
channels[0] = B B B B B B
channels[1] = G G G G G G
channels[2] = R R R R R R

一句话:

split 把交织在一起的通道,分开成连续的单通道。


六、你现在再看你原来的代码

cpp 复制代码
// 1. 先给 ms 里每个 mat 绑定好 Tensor 的内存地址(只是指路)
ms[i] = cv::Mat(height, width, CV_32F, cpu<float>(n, i));

// 2. 然后 split 把图像拆开放进这些地址里!
cv::split(image, &ms[0]);

现在是不是彻底懂了?

  1. 先准备好 3 个空的单通道 Mat(指向Tensor)
  2. split 把彩色图拆开,直接写入这 3 个 Mat
  3. 因为 Mat 指向 Tensor,所以数据直接进 Tensor!

超级精简总结

cv::split(输入多通道图, 输出单通道数组)

功能:把彩色图拆成 R、G、B 三个灰度图

你代码里的用途:拆通道 + 直接写入Tensor内存

相关推荐
老云讲算力市场3 分钟前
深圳奇点点信息科技有限公司连续中标多项AI算力项目
人工智能·科技
程序员天天困5 分钟前
GPT-5.6 来了!三款模型、Ultra 模式、编程能力全面解析
人工智能·chatgpt
AIGS0015 分钟前
向量空间JBoltAI:本体语义如何跨越企业AI的语义鸿沟
java·大数据·人工智能·人工智能ai大模型应用
Lucky_luckyZzz20 分钟前
明略科技·灵听工牌深度测评:四位一体闭环如何落地门店销售管理?
人工智能
xiaotie100521 分钟前
DeerFlow 2.0 Windows LocalSandbox Shell 执行 Bug 完整排查修复报告
人工智能
神奇小汤圆23 分钟前
Loop Engineering 半年实战拆解 :自进化的开发系统已开源
人工智能
熊猫钓鱼>_>32 分钟前
Electron:当 Web 技术统治桌面
大数据·前端·javascript·人工智能·架构·electron·agent
城事漫游Molly41 分钟前
用AI提炼研究问题与假设的完整提示词——从模糊想法到精准RQ/Hypothesis,AI辅助精化全流程
人工智能·机器学习·prompt·ai for science·博士生必读·应用语言学·研究问题
AI刀刀42 分钟前
豆包智能体对话导出后,如何构建长期归档与高效检索体系?
android·人工智能·word·excel·ai导出鸭
workflower42 分钟前
室内外配送机器人-应用路径
人工智能·机器学习·设计模式·矩阵·自动化