用opencv进行图像混合
图像混合,用的addWeighted().
注意该程序原始图保存在D:盘, 生成图保存在新建的项目路径下。
原图1:
原图2:
效果图:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc, char ** argv) {
Mat src1, src2,dst;
src1 = imread("D:/windows.png");
src2 = imread("D:/linux.png");
if (src1.empty()) {
cout << "could not load windows..." << endl;
return -1;
}
if (src2.empty()) {
cout << "could not load linux..." << endl;
return -1;
}
double alpha = 0.4;
//图片大小类型应该一致
if (src1.rows == src2.rows && src1.cols == src2.cols && src1.type() == src2.type()){
addWeighted(src1, alpha, src2, (1.0 - alpha), 0.0, dst); //按照权重添加
imshow("windows", src1);
imshow("linux", src2);
imshow("blend demo ", dst);
imwrite("linuxwindow.png", dst);
}
else {
printf("could not blends");
}
waitKey(0);
return 0;
}