opencv通道分离与合并

cpp 复制代码
void QuickDemo::channels_demo(Mat & image)
{
	std::vector<Mat>mv;
	//通道分离合并
	split(image,mv);//原图 指针(Mat)
	imshow("蓝色", mv[0]);
	imshow("绿色", mv[1]);
	imshow("红色", mv[2]);
}

split(image,mv);//原图 指针(Mat)

这里split后一个是指针 但是我们并没有看到指针在哪,就看到一个数据类型Mat和数组vetcor

经过查阅,

//Mat(matrice)基本结构 (头部 数据部分)

//这部分的大小是固定的,包含矩阵的大小,存储的方式,矩阵存储的地址等等;

//另一个部分是一个指向矩阵包含像素值的指针(data)。

经过运行

将代码修改成如下这样

cpp 复制代码
void QuickDemo::channels_demo(Mat & image)
{
	std::vector<Mat>mv;
	//通道分离合并
	split(image,mv);//原图 指针(Mat)
	imshow("蓝色", mv[0]);
	imshow("绿色", mv[1]);
	imshow("红色", mv[2]);

	Mat dst;
	mv[1] = 0;
	mv[2] = 0;
	merge(mv, dst);//合并
	imshow("蓝色", dst);

}

将其他两个通道改为0 0 现在通道颜色为255 0 0 为蓝色 可以显示

其余两个类似操作 满足 BGR

通道混合

int from_to[] = { 0,1,1,0,2,2 };//0通道跑到1 1到0 2不变
mixChannels(image,dst, from_to,3);//一个image 一个dst 三个通道
imshow("通道混合", dst);

相关推荐
Hhang1 分钟前
从 ERP 系统出发,我是如何设计一套 LLM 多 Agent 系统的(二)
前端·人工智能·agent
Java后端的Ai之路3 分钟前
还在手写 Agent 代码?封装一个 SDK 让你从“码农“升级“包工头“
人工智能·langchain·ai编程·vibe coding·agent sdk
redreamSo4 分钟前
Claude Code 最佳实践:从「能用」到「用得好」的 15 个关键技巧
人工智能·claude
Merkyor7 分钟前
我花一下午修了 7 个 bug:一个 Electron AI Agent 发版前夜的 debug 长征
人工智能
石榴树下的七彩鱼8 分钟前
智能抠图 API 接入实战:3 行代码实现图片自动去背景(Python / Java / PHP / JS)
java·图像处理·人工智能·python·php·api·抠图
星哥说事10 分钟前
开源项目OpenClaw:多AI模型统一调用的技术学习与实践
人工智能·学习
一个天蝎座 白勺 程序猿16 分钟前
零基础AI学习:数学基础要求与补充指南
人工智能·学习·ai
子非吾喵18 分钟前
本地部署AI大模型:Ollama + Qwen3 完整指南,用Python打造智能聊天助手
开发语言·人工智能·python
漫游的渔夫19 分钟前
从 Demo 到生产:为什么你的 AI 功能一上线就成了不可控的“黑盒”?
前端·人工智能
诸葛务农20 分钟前
光电对抗:多模复合制导烟雾干扰外场试验及仿真(4)
人工智能·算法·光电对抗