0

C ++: int createTrackbar(const string& trackbarname, const string& winname, int* value, int count, TrackbarCallback onChange=0, void* userdata=0) 在上面提到的函数中,用户数据是什么,它将如何在回调函数中使用

4

1 回答 1

4

该参数与回调函数一起很有用,如下所示:

void onChange (int trackpos , void *userdata);

例如,您可以将图像(地址)传递给它:

Mat img; // e.g from a webcam
int b=3; // blur value
namedWindow("win");
createTrackBar("blur","win", &b, 100, onChange, (void*)(&img) );

并在回调中使用它:

void onChange (int trackpos , void *userdata)
{
   Mat img = *((Mat*)userdata); // 1st cast, then deref
   Mat b2;
   blur( img,b2, Size(trackpos,trackpos));
   imshow("win",b2);
   waitKey(10);
}
于 2014-06-14T10:31:25.430 回答