天天看點

OpenCV addWeighted() 圖像線性混合

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>

using namespace cv;
using namespace std;

bool LinearBlending();

int main(int argc, char ** argv)
{
    LinearBlending();

    waitKey(0);
    return(0);
}

/*圖像線性混合*/
bool LinearBlending()
{
    double alphaValue = 0.5;
    double betaValue;

    Mat srcImage1, srcImage2, dstImage;

    srcImage1 = imread(".//image5.2.1//mogu.jpg");
    srcImage2 = imread(".//image5.2.1//rain.jpg");

    if (!srcImage1.data) {
        printf("srcImage1 圖像資料讀取失敗!\n");
        return false;
    }
    if (!srcImage2.data) {
        printf("srcImage2 圖像資料讀取失敗!\n");
        return false;
    }

    betaValue = 1.0 - alphaValue;
    addWeighted(srcImage1, alphaValue, srcImage2, betaValue, 0.0, dstImage);

    namedWindow("線性混合-原圖", 1);
    imshow("線性混合-原圖", srcImage1);

    namedWindow("線性混合-效果圖", 1);
    imshow("線性混合-效果圖", dstImage);

    return true;
}      

運作:

OpenCV addWeighted() 圖像線性混合

參考: