addWeighted()函数
void cv::addWeighted ( InputArray src1, double alpha, InputArray src2, double beta,
double gamma, OutputArray dst, int dtype = -1 )
程序较简单,在此不赘述。
#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui.hpp"
#include <iostream>
using namespace cv;
using namespace std;
int main(void)
{
double alpha = 0.5; double beta; double input; // 默认缺省值为0.5
Mat src1, src2, dst;
cout << "Simple Linear Blender" << endl;
cout << "---------------------" << endl;
cout << "*Enter alpha [0.0-1.0]" << endl;
cin >> input;
if (input >= 0 && input <= 1) // 判断输入参数是否在区间[0,1]
{
alpha = input;
}
src1 = imread("../data/LinuxLogo.jpg");
src2 = imread("../data/WindowsLogo.jpg");
if (src1.empty()) { cout << "Error loading src1" << endl; return -1; }
if (src2.empty()) { cout << "Error loading src2" << endl; return -1; }
beta = (1.0 - alpha);
addWeighted(src1, alpha, src2, beta, 0.0, dst); // dst = src1 * alpha + src2 * beta + 0.0
imshow("LinuxLogo", src1);
imshow("WindowsLogo", src2);
imshow("Linear Blend", dst);
waitKey(0);
return 0;
}
运行结果
Simple Linear Blender
---------------------
*Enter alpha [0.0-1.0]
0.4