温馨提示×

OpenCV怎么实现图像的融合和叠加

小亿
232
2024-05-23 11:29:09
栏目: 编程语言

在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的值来获得不同的融合效果。

0