opencv 图像的线性混合

Posted carlber

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv 图像的线性混合相关的知识,希望对你有一定的参考价值。

1 线性混合理论

   g(x) = (1-α)*f1(x) + α*f2(x)

  其中,α代表图像的权重

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

using namespace std;
using namespace cv;

int main(int argc, char **argv)
{
    Mat src1 = imread("D:/meinv.jpg");
    namedWindow("第一幅图像", CV_WINDOW_AUTOSIZE);
    imshow("第一幅图像", src1);

    Mat src2 = imread("D:/t.jpg");
    namedWindow("第二幅图像", CV_WINDOW_AUTOSIZE);
    imshow("第二幅图像", src2);

    if (src1.rows == src2.rows && src1.cols == src2.cols && src1.type() == src2.type())
    {
        Mat dst;
        addWeighted(src1, 0.5, src2, 0.5, 0.0, dst);     //相关API  权重各占0.5
        //add(src1, src2, dst);
        imshow("混合的图像为",dst); 
    }
    
    waitKey(0);
    return 0;

}

 显示结果为:

原图:技术分享图片

技术分享图片

混合后的图像

技术分享图片


以上是关于opencv 图像的线性混合的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV 图像混合

opencv 图像的线性混合

C++ OpenCV线性混合操作

opencv4opencv视频教程 C++ 6图像混合线性混合混合权重相加addWeighted()混合加add()混合乘multiply()

OpenCV + CPP 系列图像的加权混合 对比度与亮度

数字图像处理OpenCV3 学习笔记