详细流程:
- (一)、线性混合操作:使用addWeighted()
- 1、代码
- 2、说明
- 3、图片效果
- (二)、使用roi和mask方式
- 1、代码
- 2、说明
- 3、图片效果
(一)、线性混合操作:使用addWeighted()
1、代码
#include<opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
using namespace cv;int main(int argc, char *argv[]) {Mat image, imagesrc1, imagesrc2;imagesrc1 = cv::imread("../data/test1.jpg");//读取图像1imagesrc2 = cv::imread("../data/test2.jpg");//读取图像2//判断读入是否成功if (!imagesrc1.data | !imagesrc2.data) {std::cout << "打开图片失败,请检查路径!" << std::endl;return 0;}//调整image2的大小与image1的大小一致,融合函数addWeighted()要求输入的两个图形尺寸相同resize(imagesrc2, imagesrc2, Size(imagesrc1.cols, imagesrc1.rows));addWeighted(imagesrc1, 0.3, imagesrc2, 0.7, 0, image);//0.5+0.5=1,0.3+0.7=1imshow("效果图", image);//建立显示窗口namedWindow("效果图");imwrite("../save/fuse.png", image);waitKey();return 0;
}
2、说明
1、先读取两张图;
2、调整image2的大小与image1的大小一致,融合函数addWeighted()要求输入的两个图形尺寸相同;
3、addWeighted(imagesrc1, 0.3, imagesrc2, 0.7, 0, image);这一行是给两张图片分别赋予权重,只要给的两个权重加起来等于1即可;
4、显示效果图;
5、写入处理之后的图片。
3、图片效果


(二)、使用roi和mask方式
1、代码
void GenerateRendering(Mat &srcImage, Mat &IC, Mat &IP, Mat &rending) {Mat mask1, mask2, tmp;IP.copyTo(mask1);IC.copyTo(mask2);//绿色通道分离出来vector<Mat> channels;Mat imageGreenChannel;//1Mat imageRedChannel;//2Mat greenmerge;split(IP, channels);//分离色图像色彩通道,则三通道图像成为三个单通道图像imageGreenChannel = channels.at(1);channels[0] = Mat::zeros(Size(IP.rows, IP.cols), CV_8UC1);channels[2] = Mat::zeros(Size(IP.rows, IP.cols), CV_8UC1);merge(channels, greenmerge);//再抠掉greenmerge.copyTo(srcImage, mask1);srcImage.copyTo(tmp);//红色通道分离出来vector<Mat> channels1;Mat redmerge;split(IC, channels1);//分离色图像色彩通道,则三通道图像成为三个单通道图像imageRedChannel = channels1.at(2);channels1[0] = Mat::zeros(Size(IP.rows, IP.cols), CV_8UC1);channels1[1] = Mat::zeros(Size(IP.rows, IP.cols), CV_8UC1);merge(channels1, redmerge);//再抠掉IC将红色粘上去redmerge.copyTo(tmp, mask2);tmp.copyTo(rending);
}
2、说明
1、先读取3张图;
2、类似于抠图那种将图片加上去
重要的是这个函数: greenmerge.copyTo(srcImage, mask1);
3、图片效果

![第7章第23节:双图排版:两张图片的错位叠加 [PowerPoint精美幻灯片实战教程]](https://img-blog.csdnimg.cn/img_convert/87e41e879ec3f3aa957c46db991a64d0.png)
















