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

相关推荐
老吴学AI2 分钟前
第二篇:智能五层模型:定义你的AI应用战略高度
大数据·人工智能·aigc
deephub4 分钟前
从贝叶斯视角解读Transformer的内部几何:mHC的流形约束与大模型训练稳定性
人工智能·深度学习·神经网络·transformer·残差链接
CoderJia程序员甲4 分钟前
2025年度总结之-如何构建 2025 专属的 GitHub AI 项目情报库
人工智能·ai·大模型·github·ai教程
麦德泽特5 分钟前
基于ESP32S3芯片的机器人控制器设计与实现
人工智能·物联网·机器人·esp32·芯片
阿正的梦工坊5 分钟前
VisualTrap:一种针对 GUI Agent 的隐蔽视觉后门攻击
人工智能·深度学习·机器学习·语言模型·自然语言处理
渡我白衣8 分钟前
从直觉到公式——线性模型的原理、实现与解释
人工智能·深度学习·神经网络·机器学习·计算机视觉·自然语言处理·caffe
大模型任我行8 分钟前
美团:统一生成理解多模态大模型
人工智能·计算机视觉·语言模型·论文笔记
deep_drink9 分钟前
【论文精读(十八)】SPoTr:拒绝盲目采样,自定位探针(Self-Positioning)如何“以点带面”?(CVPR 2023)
深度学习·神经网络·计算机视觉·3d·point cloud
不一样的故事1269 分钟前
1. 公司质量体系的维护与申办监管•
大数据·运维·人工智能
向量引擎小橙10 分钟前
数字孪生进阶版:“全脑城市”如何改变我们的生活
大数据·人工智能·深度学习·生活·集成学习