Opencv综合练习(一):图像ROI+线性混合

前言:

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章