欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

图像混合addWeighted

程序员文章站 2024-03-25 10:05:34
...

数学公式
图像混合addWeighted

对两个图片的每个对应像素执行公式,其中a的取值范围0~1。注意两张图片的大小和类型要相同

相关API

Void cv::addWeighted(
InputArray src1,        输入图像1的Mat
    double alpha,       输入图像1的权重
    InputArray src2,        输入图像2的Mat
    double 1 – alpha,       输入图像2的权重
    double gamma,       gamma值,暂时0
    OuputArray dst,     输出混合图像
    Int dtype = -1      
)

代码实现

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

Mat src1, src2;
int alpha = 5;
int maxValue = 10;
void blendDemo(int, void*);
int main() {
    src1 = imread("D:/a.jpg");
    src2 = imread("D:/b.jpg");
    imshow("image1", src1);
    imshow("image2", src2);
    namedWindow("dst", CV_WINDOW_AUTOSIZE);

    createTrackbar("alpha value", "dst", &alpha, maxValue, blendDemo);
    blendDemo(0, 0);

    waitKey(0);
    return 0;
}
void blendDemo(int, void*) {
    Mat dst;
    addWeighted(src1, alpha / 10.0, src2, 1 - alpha / 10.0, 0, dst);
    imshow("dst", dst);
}