目前我有许多用于更改图像值的滑块。我正在为滑块使用 OpenCV 轨迹栏,该滑块对我的每个滑块都有一个不同功能的回调。我想让我的滑块回调指向一个回调函数,然后使用用户数据来识别哪个轨迹栏进行了调用。
我不确定我应该将什么值传递给 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 作为 ref 的地址。
int val = *((int*)&userdata);
这似乎很麻烦,因为我必须从 val 的地址中取回值。有没有更简单的方法来做到这一点?