滑动条事件函数
函数原型
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;
}
效果