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

一、通道分离:split()函数

 1 #include<opencv2/opencv.hpp>
 2 #include<iostream>
 3 #include<vector>
 4 using namespace cv;
 5 using namespace std;
 6 
 7 bool ROI_AddImage();
 8 bool LinearBlending();
 9 
10 
11 int main(int argc, char** argv) {
12     //Mat image1= imread("C:\\Users\\Nelsoner\\Desktop\\Camera Roll\\05.jpg");
13     //Mat image2 = imread("C:\\Users\\Nelsoner\\Desktop\\Camera Roll\\08.jpg");
14     system("color 5E");
15     if (ROI_AddImage() && LinearBlending() ) {
16         cout << endl << "运行成功,得出了你需要的图像~:";
17     }
18     waitKey(0);
19     return 0;
20 
21     
22 }
23 
24 bool ROI_AddImage() {   //利用感兴趣的区域ROI实现图像叠加
25     //读入图像
26     Mat srcImage1 = imread("C:\\Users\\Nelsoner\\Desktop\\Camera Roll\\05.jpg");
27     Mat logoImage = imread("C:\\Users\\Nelsoner\\Desktop\\Camera Roll\\001.jpg");
28 
29     //定义一个Match类型并给其设定ROI区域
30     Mat imageROI = srcImage1(Rect(srcImage1.cols-logoImage.cols, srcImage1.rows-logoImage.rows,logoImage.cols,logoImage.rows));
31     
32     //加载掩模
33     Mat mask = imread("C:\\Users\\Nelsoner\\Desktop\\Camera Roll\\001.jpg",0);
34     
35     //将掩模复制到ROI
36     logoImage.copyTo(imageROI,mask);
37 
38     //显示结果
39     namedWindow("hah");
40     imshow("hah",srcImage1);
41     
42     return true;
43 }
44 
45 bool LinearBlending() {  //利用addWeighted()函数实现图像线性混合
46     double alphaValue = 0.5;
47     double betaValue;
48     Mat srcImage2, srcImage3, dstImage;
49 
50     //读取图像(两幅图类型和尺寸相同)
51     srcImage2 = imread("C:\\Users\\Nelsoner\\Desktop\\Camera Roll\\05.jpg");
52     srcImage3 = imread("C:\\Users\\Nelsoner\\Desktop\\Camera Roll\\08.jpg");
53 
54     //进行图像混合加权操作
55     betaValue = (1.0 - alphaValue);
56     addWeighted(srcImage2, alphaValue, srcImage3, betaValue,0.0,dstImage);
57 
58     namedWindow("heh");
59     imshow("heh",dstImage);
60 
61     return true;
62 }

 

转载于:https://www.cnblogs.com/Nelsoner/p/6720068.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值