OpenCV - 滾動條的創建和使用

滾動條(Trackbar)是OpenCV動態調節參數特別好用的一種工具,它依附於窗口而存在。createTrackbar()函數用來創建一個可調整數值的附加在窗口上的滾動條!

創建滾動條的createTrackbar()在實例中的應用如下:

#include <iostream>  
#include <vector>  
#include <opencv2/opencv.hpp>    
#include <opencv2/core/core.hpp>    
#include <opencv2/highgui/highgui.hpp>    
#include <opencv2/imgproc/imgproc.hpp>    
using namespace cv;
using namespace std;

double sliderValue;//滾動條對應變量
const int Maxsilder = 100;
int Sildermark;//滾動條對應變量
#define WINDOW "線性混合示例" //窗口標題定義宏

Mat Image1;
Mat Image2;
Mat mixImage;

void on_Trackbar(int, void*)
{
	double betaValue;
	sliderValue = (double)Sildermark / Maxsilder;
	betaValue = (1.0 - sliderValue);

	addWeighted(Image1, sliderValue, Image2, betaValue, 0.0, mixImage);//將1,2圖線性混合,存儲在mixImage
	imshow(WINDOW, mixImage);
}

int main(int argc, char** argv)
{
	Image1 = imread("C:\\Desktop\\11.jpg");
	Image2 = imread("C:\\Desktop\\22.jpg");
	if (!Image1.data)
	{
		printf("讀取第一幅圖有誤,請確定圖片路徑!\n");
		return -1;
	}
	if (!Image2.data)
	{
		printf("讀取第二幅圖有誤,請確定圖片路徑!\n");
		return -1;
	}
	Sildermark = 70;//滾動條初始值爲70
	namedWindow(WINDOW, 1);//創建窗口

	char TrackbarName[50];//窗口中的滑動條控件
	sprintf(TrackbarName, "透明值 %d", Maxsilder);
	createTrackbar(TrackbarName, WINDOW, &Sildermark, Maxsilder, on_Trackbar);
	on_Trackbar(Sildermark, 0);
	waitKey(0);
	return 0;
}

編譯運行後,原圖以及混合所得的運行圖片:


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