每天一個opencv函數:滑動條createTrackbar

滑動條事件函數

函數原型

int createTrackbar(const string& trackbarname, const string& winname, int * value, int count, TrackbarCallback onChange=0, void * userdata = 0);

參數詳解

參數 解釋
參數1 滑動條名稱
參數2 滑動條所在的窗口
參數3 一個指向整型的指針,表示滑塊的位置,創建時,該變量就是滑塊的初始位置
參數4 int類型的值,表示滑動條的最大行程,最小爲0(opencv的GUI中沒有按鈕,因此可以使用滑塊的0和1來代替按鈕)
參數5 回調函數,每次滑塊改變位置,則會調用這個函數(函數原型必須爲:void XX(int, void *);第一個參數表示滑塊位置,第二個參數爲用戶數據)
參數6 用戶傳入的數據

演示代碼

Mat gray;
Mat gray_show;
int value = 0;

void On_Trackbar(int, void*)
{
	threshold(gray, gray_show, value, 255, THRESH_BINARY);	//閾值分割
	bitwise_not(gray_show, gray_show);
	imshow("output", gray_show);
}

int main()
{
	Mat src = imread("D:\\c plus plus\\test1111.png");
	if (!src.data)
	{
		cout << "can not open the picture" << endl;
		return -1;
	}
	imshow("intput image", src);

	cvtColor(src, gray, COLOR_BGR2GRAY);
	
	namedWindow("output", WINDOW_AUTOSIZE);
	createTrackbar("value", "output", &value, 255, On_Trackbar);
	On_Trackbar(value, 0);

	waitKey(0);
	return 0;
}

效果

在這裏插入圖片描述
在這裏插入圖片描述

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