滑動條事件函數
函數原型
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;
}
效果