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(八月十五)中秋節快樂!

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