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);

相关推荐
武子康1 分钟前
Hugging Face AI 驱动入侵真正暴露的是 Dataset Processing 信任边界(攻击链 + 三层隔离 + 行动清单)
人工智能·安全·llm
GuWenyue1 分钟前
LLM工具调用慢到崩溃?1套Promise.all并行方案,Agent性能直接翻倍
人工智能
GuWenyue2 分钟前
复刻Cursor编程Agent!4套文件命令工具+Promise.all并发,AI自动生成React项目
人工智能
技录局8 分钟前
Superpowers 实现原理深度解析:如何把工程纪律变成 Agent 的默认行为
人工智能
z12345677799 分钟前
小说大纲生成工具怎么选:把灵感、结构和日更节奏放到同一条写作线上
人工智能
Swift社区10 分钟前
AI 为什么越来越像微服务?
人工智能·微服务·架构
xin(n_n)b11 分钟前
科研小白的进阶笔记(一)
人工智能·笔记
神奇霸王龙21 分钟前
Imagen 4 降价 18%: 生图价格战开场
图像处理·人工智能·gpt·ai·ai作画·imagen
明月光81823 分钟前
MaaS 平台踩坑记:你记住的模型名,可能明天就没了
人工智能
m0_4665252924 分钟前
WAIC 2026 展会快讯 | 东软添翼医疗健康智能化解决方案2.0,全场景落地三甲医院内部
大数据·人工智能