一、原理
線性混合操作:
這裏α 表示兩種圖片的融合比例,這個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);
}
四、調試結果