#include<cv.h>
#include<highgui.h>
#include<iostream>
using namespace cv;
using namespace std;
bool duotongdao();
int main()
{

if(duotongdao())
{
cout<<endl<<"恩 得到混合值图像";
}
waitKey(0);
return 0;
}
bool duotongdao()
{
Mat srcImage;
Mat logoImage;
vector<Mat>channels;
Mat imageBlueChannel;
logoImage = imread("cloud.jpg",0);//>0 Return a 3-channel color image  =0 Return a grayscale image
srcImage = imread("ali.jpg");
if(!logoImage.data){
printf("no it is wrong !");
}
if(!srcImage.data){
printf("no it is wrong !");
}
//把一个3通道图像转化为3个单通道图像
split(srcImage,channels);//分离色彩通道
//将原图的蓝色通道引用返回给imageBlueChannel,注意是引用,相当于两者等价,修改其中之一,另一个跟着改变
imageBlueChannel = channels.at(0);
//将原图的蓝色通道的(100,100)坐标处右下方的一块区域和logo图进行加权操作,将得到的混合结果存到
//imageBlueChannel中
addWeighted(imageBlueChannel(Rect(100,100,logoImage.cols,logoImage.rows)),0.8,
logoImage,0.2,0,imageBlueChannel(Rect(100,100,logoImage.cols,logoImage.rows)));
//将三个单通道重新合成一个三通道
merge(channels,srcImage);
namedWindow("logo with Blue road",WINDOW_NORMAL);
imshow("logo with Blue road",srcImage);

Mat  imageGreenChannel;
       logoImage=imread("cloud.jpg",0);
       srcImage=imread("ali.jpg");
       if(!logoImage.data ) { printf("no it is wrong !"); return false; }
       if(!srcImage.data ) { printf("no it is wrong !"); return false; }
       split(srcImage,channels);
       imageGreenChannel=channels.at(1);
       addWeighted(imageGreenChannel(Rect(100,100,logoImage.cols,logoImage.rows)),0.5,
              logoImage,0.5,0,imageGreenChannel(Rect(100,100,logoImage.cols,logoImage.rows)));
       merge(channels,srcImage); 
       namedWindow("Green",WINDOW_NORMAL);
       imshow("Green",srcImage);

Mat  imageRedChannel;
       logoImage=imread("cloud.jpg",0);
       srcImage=imread("ali.jpg");
       if(!logoImage.data ) { printf("no it is wrong !"); return false; }
       if(!srcImage.data ) { printf("no it is wrong !"); return false; }
       split(srcImage,channels);
       imageRedChannel=channels.at(2);
       addWeighted(imageRedChannel(Rect(100,100,logoImage.cols,logoImage.rows)),1.5,
              logoImage,0.5,0,imageRedChannel(Rect(100,100,logoImage.cols,logoImage.rows)));
       merge(channels,srcImage); 
       namedWindow("Red",WINDOW_NORMAL);
       imshow("Red",srcImage);
return true;
}

三通道图像转化为三通道,并将多通道图像混合相关推荐

  1. python将图像转化为灰度图像_使用numpy将图像转换为灰度

    使用apply_along_axis的解决方案 可以通过使用^{}来实现解决方案:import numpy as np def grayscale(colors): """ ...

  2. 图片一:单通道、三通道、灰度图、黑白图、三通道转灰度图(单通道)

    图片的概念经常搞不清楚,导致对图片处理很糟糕.感觉还是总结下比较好,省的每次都要找一堆博客看.下面的内容是博主个人理解,不能保证全部正确,如有错误,敬请指出. 1.图片:通常指的是数字图片,数据结构通 ...

  3. 物联网控制期末复习2:第三章-物联网控制系统的过程通道设计

    第三章概述 过程通道是计算机与被控对象交换信息的桥梁,分为输出通道与输入通道.输出通道与输入通道通常又分为模拟和数字两大类. 模拟量输出通道 计算机控制系统的模拟量输出通道将计算机产生的数字控制信号转 ...

  4. 服务器四通道内存性能提升,三通道和四通道的性能差距是多少

    四通道对带宽等的提升,让内存性能可以得到更好的发挥,不过就目前来看,四通道对性能的提升还不是特别的明显,不过对于可以选择如此主板与CPU的玩家来说,四通道内存可谓必选之物,但就对于游戏方面的实用性作用 ...

  5. SimpleITK图像基础(三)——SimpleITK学习笔记

    SimpleITK学习笔记 前言 1 sitk中的常见属性值 2 读取和保存图像 3 像素类型 4 SimpleITK图像数据和Numpy矩阵数据之间的转换 5 访问像素和切片 6 图像重采样 7 图 ...

  6. Python+OpenCV 图像处理系列(5)—— 图像 ROI 操作及通道的拆分合并

    1. 图像 ROI 有时你需要对一幅图像的特定区域进行操作.例如我们要检测一副图像中眼睛的位置,我们首先应该在图像中找到脸,再在脸的区域中找眼睛,而不是直接在一幅图像中搜索.这样会提高程序的准确性和性 ...

  7. 【opencv】(1) 基础操作:图像视频读取、图像截取、颜色通道

    主要内容有:图像及视频的读取和保存.图像显示.转换灰度图.图像截取.颜色通道提取和组合 那我们开始吧. 1. 图像操作 首先我们导入opencv库,彩色图像一般都是由RGB(红绿蓝)三颜色通道构成,灰 ...

  8. 转载:【OpenCV入门教程之五】 分离颜色通道多通道图像混合

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/21176257 作者:毛星云(浅墨) ...

  9. 【OpenCV入门教程之五】 分离颜色通道多通道图像混合(转)

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/21176257 作者:毛星云(浅墨) ...

最新文章

  1. 求环形数组的最大子数组的和
  2. 浅谈深浅拷贝问题(这里只针对拷贝构造函数和赋值运算符重载)和简易srting类模拟实现
  3. 【转】Nginx服务器的反向代理proxy_pass配置方法讲解
  4. when click one item in table Select at least one column to perform the search
  5. 【渝粤教育】国家开放大学2019年春季 2767养猪技术 参考试题
  6. 【 Grey Hack 】大数四则运算
  7. (转)Enterprise Architect 7.0入门教程
  8. android修改自动背光,Android LCD和键盘 背光亮度设置
  9. ROC曲线和AUC 原理与实现——Python实战
  10. Strategy模式C++实现
  11. 因为M.2 SSD,不得不装了WINDOWS10
  12. 对网上盛传的两千万泄漏数据的简单分析
  13. 磁盘分区和目录的区别是什么
  14. 知到网课教师口语艺术考试题库(含答案)
  15. 直方图规定化计算过程
  16. vue项目获取浏览器地址栏参数方法 ?aaa=111bbb=222(非路由传参)
  17. Java项目:SpringBoot人才求职招聘网站
  18. eclipse出现编译错误:resolution will not be reattempted until the update interval o f central has elapsed
  19. android fstrim命令,满血复活:安卓4.3为所有Nexus带来TRIM
  20. 生日悖论分析基于python

热门文章

  1. 【PMP】三点估算法
  2. android rom 刷机出现的错误
  3. C语言-外部关键字extern
  4. 国服Cytus2解密与注入
  5. 安徽计算机水平一级考试成绩查询,安徽计算机一级考试成绩查询
  6. java车间调度算法_混合算法(GA+TS)求解作业车间调度问题代码解读+完整JAVA代码...
  7. 列车调度(贪心):单机调度问题贪心算法
  8. Shopkick:从eBay、Amazon和Groupon当中杀出一条血路的移动购物应用
  9. 最新kali之john
  10. 区块链技术,让数字政务跑出“加速度”