opencv學習筆記-3,圖像混合

一、原理

線性混合操作:


這裏α 表示兩種圖片的融合比例,這個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);
}


四、調試結果


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章