一、原理
线性混合操作:
这里α 表示两种图片的融合比例,这个g(x) 表示 融合图片中的像素点,f0(x) 和 f1(x) 分别表示背景和前景图片中的像素点。
二、API
C++: void addWeighted(InputArray src1, double alpha, InputArray src2, double beta, double gamma,OutputArray dst, int dtype=-1)
1、 第1个参数,输入图片1,
2、第2个参数,图片1的融合比例
3、第3个参数,输入图片2
4、第4个参数,图片2的融合比例
5、第5个参数,偏差
6、第6个参数,输出图片
注意:src1与src2图片大小相等,类型(rows,clos,type)相同才可进行addWeighted函数操作。
三、代码
#include<opencv2/opencv.hpp>
#include<highgui.h>
#include<iostream>
using namespace cv;
using namespace std;
int main(int argc,char**argv)
{
Mat src1,src2,std;
src1=imread("1.jpg");
src2=imread("2.jpg");
//addWeighted(src1,0.3,src2,0.7,0.0,std);
//add(src1,src2,std);
multiply(src1,src2,std);
namedWindow("img1",WINDOW_AUTOSIZE);
imshow("img1",src1);
namedWindow("img2",WINDOW_AUTOSIZE);
imshow("img2",src2);
namedWindow("blend demo ",WINDOW_AUTOSIZE);
imshow("blend demo",std);
waitKey(0);
return(0);
}
四、调试结果