在OpenCV中,可以通过addWeighted()函数来实现图像的融合和叠加。addWeighted()函数的语法如下:
void addWeighted(InputArray src1, double alpha, InputArray src2, double beta, double gamma, OutputArray dst);
其中,src1和src2分别为要融合的两幅图像,alpha和beta分别为两幅图像的权重系数,gamma为融合后图像的亮度值,dst为输出的融合后的图像。
示例代码如下:
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
Mat img1 = imread("image1.jpg");
Mat img2 = imread("image2.jpg");
if (img1.empty() || img2.empty()) {
std::cout << "Error: Image not found!" << std::endl;
return -1;
}
Mat blendedImage;
double alpha = 0.5;
double beta = 0.5;
double gamma = 0;
addWeighted(img1, alpha, img2, beta, gamma, blendedImage);
imshow("Blended Image", blendedImage);
waitKey(0);
return 0;
}
在这个例子中,我们将两幅图像img1和img2按照权重系数alpha和beta进行融合,结果保存在blendedImage中,并显示出来。您可以调整alpha和beta的值来获得不同的融合效果。