当前位置: 首页 > news >正文

10_opencv_分离颜色通道、多通道图像混合

split() 通道分离

void cv::split(const Mat & 	src,Mat * 	mvbegin )	

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

merge() 通道合并

void cv::merge(InputArrayOfArrays 	mv,OutputArray 	dst )	

在这里插入图片描述
在这里插入图片描述

Mat::at()方法

Mat::at()方法返回一个引用到指定的数组元素。
注意是引用,相当于两者等价,也就是修改其中一个,另一个也会随之改变。

imageBlueChannel= channels.at(0);

imageBlueChannel 变量操作,就是对channels.at[0] 进行操作。

多通道混合-蓝色分量部分

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>using namespace cv;
using namespace std;int main(   )
{//【0】定义相关变量Mat srcImage;Mat logoImage;vector<Mat> channels;Mat  imageBlueChannel;//=================【蓝色通道部分】=================//    描述:多通道混合-蓝色分量部分//============================================// 【1】读入图片logoImage= imread("/Volumes/Macintosh HD - 数据/Code/opencv_code/MyFirstOpenCV01/in_picture/26_dota_logo.jpg",0);srcImage= imread("/Volumes/Macintosh HD - 数据/Code/opencv_code/MyFirstOpenCV01/in_picture/dota_jugg.jpg");if( !logoImage.data ) { printf("Oh,no,读取logoImage错误~! \n"); return 0; }if( !srcImage.data ) { printf("Oh,no,读取srcImage错误~! \n"); return 0; }//【2】把一个3通道图像转换成3个单通道图像split(srcImage,channels);//分离色彩通道cout << channels.at(0) << endl;//【3】将原图的蓝色通道引用返回给imageBlueChannel,注意是引用,相当于两者等价,修改其中一个另一个跟着变imageBlueChannel= channels.at(0);//【4】将原图的蓝色通道的(500,250)坐标处右下方的一块区域和logo图进行加权操作,将得到的混合结果存到imageBlueChannel中addWeighted(imageBlueChannel(Rect(500,250,logoImage.cols,logoImage.rows)),1.0,logoImage,0.5,0,imageBlueChannel(Rect(500,250,logoImage.cols,logoImage.rows)));//【5】将三个单通道重新合并成一个三通道merge(channels,srcImage);//【6】显示效果图namedWindow(" <1>游戏原画+logo蓝色通道");imshow(" <1>游戏原画+logo蓝色通道",srcImage);waitKey(0);return 0;
}

在这里插入图片描述

多通道混合-绿色分量部分

在这里插入图片描述
在这里插入图片描述

多通道混合-红色分量部分

在这里插入图片描述

在这里插入图片描述

http://www.dtcms.com/a/303566.html

相关文章:

  • Nuxt3 全栈作品【通用信息管理系统】修改密码
  • OpenLayers 综合案例-热力图
  • 在虚拟机ubuntu上修改framebuffer桌面不能显示图像
  • C++进阶—C++11
  • 5G 便携式多卡图传终端:移动作业的 “实时感知纽带”
  • 【unitrix】 6.19 Ord特质(ord.rs)
  • 【灰度实验】——图像预处理(OpenCV)
  • 2025年7月28日训练日志
  • 【三桥君】如何解决后端Agent和前端UI之间的交互问题?——解析AG-UI协议的神奇作用
  • 排水管网实时监测筑牢城市安全防线
  • 线程间-数据缓存机制(线程邮箱)
  • CDN架构全景图
  • STM32 usb HOST audio USB 音频设备 放音乐
  • springCloudAlibaba集成Dubbo
  • 【版本更新】火语言 0.9.94.0 更新
  • 虚拟面孔,真实革命
  • Product Hunt 每日热榜 | 2025-07-28
  • JAVA_EIGHTEEN_特殊文件
  • STM32——寄存器映射
  • LLaMA-Factory微调教程2:命令行sft微调
  • 【拓扑排序 缩点】P2272 [ZJOI2007] 最大半连通子图|省选-
  • 【跳跃游戏】
  • BUUCTF-MISC-[HBNIS2018]caesar1
  • Linux驱动22 --- RV1126 环境搭建设备树修改
  • 从零到一:我是如何用深度学习打造高性能书籍推荐系统的
  • mp核心功能
  • 零基础学习性能测试第九章:全链路追踪-项目实操
  • 猎板 PCB 控深槽工艺:5G 基站散热模块的关键支撑
  • 解决c++运行时提示:first defined here (重复定义问题)
  • **线程与进程的区别与联系**