目前我有許多用於更改圖像值的滑塊。我正在使用滑塊的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
返回值而不是地址是。我只想知道是否有更好的方式發送用戶數據。 –