目前我有许多用于更改图像值的滑块。我正在使用滑块的OpenCV轨迹栏,它为我的每个滑块调用了不同的函数。我想将我的滑块回调点指向单个回调函数,然后使用用户数据来确定哪个跟踪栏发起了呼叫。如何使用OpenCV trackbar传递用户数据
Here is the documentation for the track bar
我不能确定什么样的价值观我应该传递到void *,以及如何再检索该值,形成我的回调函数下面是一个编译我的轨迹栏的一个例子。
int ref = 1;
createTrackbar("Name","Window",0, 1, myFunc, &ref);
在我的回调函数中,我试着检索ref的值。
void myFunc(int value, void *userdata)
{
int val = *((int*)&userdata);
cout << val << endl;
}
我不得不试图将指针转换回为int的问题,这是一个解决方案,我在网上找到这给了我VAL作为参考的地址。
int val = *((int*)&userdata);
这似乎很麻烦,因为我然后必须从val处获取值的地址。有没有更简单的方法来做到这一点?
不应该是'int val = *((int *)userdata)'? – Bull
返回值而不是地址是。我只想知道是否有更好的方式发送用户数据。 –