目前,我有许多用于更改图像值的 slider 。我正在为 slider 使用 OpenCV 轨迹栏,它对我的每个 slider 都有一个不同函数的回调。我想让我的 slider 回调指向一个回调函数,然后使用用户数据来确定调用的是哪个轨迹栏。
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 作为 ref 的地址。
int val = *((int*)&userdata);
这看起来很麻烦,因为我必须从 val 的地址取回值。有更简单的方法吗?
最佳答案
不,没有简单的方法。这是您想要的功能所必需的最低限度。
关于c++ - 如何使用 OpenCV trackbar 传递用户数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19635803/