前言:
開發環境:win10 Visual Studio 2017
開發語言:C++
編譯器:Debug X64
Opencv版本:4.1.1
代碼實現:
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;
bool ROI_LinearBlending();
int main()
{
system("color 0F");
if ( ROI_LinearBlending())
{
cout << endl << "OK! Please start your performance ! ";
}
while (1)
{
if (waitKey(100) == 27)
break;
}
}
bool ROI_LinearBlending()
{
//【0】定義一些局部變量
// dst = src1[I]*alpha+ src2[I]*beta + gamma;
// 這裏的alpha和beta代表了兩個圖像的加權值,這裏設置的爲src1佔4成src2佔6成;
double alphaValue = 0.4;
double betaValue = 0.6;
Mat Image1, Image2, ImageRoi , AddIamgeRoiImage2,AddImage2ImageRoi;
//【1】讀取圖像
Image1 = imread("D:\\vs2017_Project\\4th-Combination_Exercise\\background.jpg");
Image2 = imread("D:\\vs2017_Project\\4th-Combination_Exercise\\logo.jpg");
//【2】定義一個Mat類型並給其設定ROI區域
Mat imageROI;
imageROI = Image1(Rect(0, 0, Image2.cols, Image2.rows));
//【3】將logo加到原圖上
addWeighted(imageROI, alphaValue, Image2, betaValue, 0.0, AddIamgeRoiImage2);
addWeighted(Image2, alphaValue, imageROI, betaValue, 0.0, AddImage2ImageRoi);
//【4】顯示結果
imshow("區域線性圖像混合示例窗口1", AddIamgeRoiImage2);
imshow("區域線性圖像混合示例窗口2", AddImage2ImageRoi);
return true;
}
結果:
後記:
2019.09.13(八月十五)中秋節快樂!