//mat::copyTo用法:
const char* filename="C://Users//huashuo111//Desktop//路飞.jpg";
Mat img=imread(filename,1);
//resize(img,img,Size(),0.5,0.5);
Mat img1=imread("C://Users//huashuo111//Desktop//logo.jpg");
Mat imgRoi=img(Rect(img.cols-img1.cols,0,img1.cols,img1.rows));//融合区域
Mat img2=imread("C://Users//huashuo111//Desktop//logo.jpg",0);//掩码
img1.copyTo(imgRoi,img2);//img2掩码中某点灰度值不为0,则把img1该点处值付给imgRoi;否则imgRoi保持不变
imshow("融合",img);
原图:
掩码:
效果:
addWeighted 用法:
cvAddWeighted( const CvArr* src1, double alpha, const CvArr* src2, double beta, double gamma, CvArr* dst );
src1 //第一个原数组.
alpha //第一个数组元素的权值
src2 //第二个原数组
beta //第二个数组元素的权值
dst //输出数组
gamma //添加的常数项。
函数 cvAddWeighted 计算两数组的加权值的和:
dst(I)=src1(I)*alpha+src2(I)*beta+gamma
说以说0.7和0.9分别代表两个图像在dst图像中占得比例,是由你自己给定的,后面的0只是起一个微调作用。
const char* filename="C://Users//huashuo111//Desktop//路飞.jpg";
Mat img=imread(filename,1);
//resize(img,img,Size(),0.5,0.5);
Mat img1=imread("C://Users//huashuo111//Desktop//logo.jpg");
Mat imgRoi=img(Rect(img.cols-img1.cols,0,img1.cols,img1.rows));//融合区域
addWeighted(imgRoi,0.5,img1,0.5,0.0,imgRoi);
imshow("融合",img);
imwrite("C://Users//huashuo111//Desktop//融合.jpg",img);
效果: