滑動條的創建與使用

#include <opencv2/opencv.hpp>
#include "opencv2/highgui/highgui.hpp"
//#include <iostream>
using namespace cv;

#define WINDOW_NAME "【線性混合示例】"

const int g_nMaxAlphaValue = 100;
int g_nAlphaValueSlider;
double g_dAlphaValue;
double g_dBetaValue;

Mat g_srcImage1;
Mat g_srcImage2;
Mat g_dstImage;

void on_Trackbar(int, void*) {
	//求出當前alpha值相對於最大值的比例
	g_dAlphaValue = (double)g_nAlphaValueSlider / g_nMaxAlphaValue;
	//則beta 值爲1減去alpha值
	g_dBetaValue = (1.0 - g_dAlphaValue);

	//根據alpha和beta值進行線性混合
	addWeighted(g_srcImage2, g_dAlphaValue, g_srcImage1, g_dBetaValue, 0.0, g_dstImage);
	imshow(WINDOW_NAME, g_dstImage);

}
int main()
{
	g_srcImage1 = imread("1.jpg");
	g_srcImage2 = imread("3.jpg");
	
	//設置滑動條的初值70
	g_nAlphaValueSlider = 70;
	//創建窗體
	namedWindow(WINDOW_NAME, 1);
	//在創建的窗體中創建一個滑動條控件
	char TrackbarName[50];
	sprintf(TrackbarName, "透明值 %d", g_nMaxAlphaValue);

	createTrackbar(TrackbarName,WINDOW_NAME, &g_nAlphaValueSlider, g_nMaxAlphaValue, on_Trackbar);

	on_Trackbar(g_nAlphaValueSlider, 0);
	
	
	waitKey(0);
	return 0;
}

發佈了22 篇原創文章 · 獲贊 44 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章