前言:
开发环境: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(八月十五)中秋节快乐!