【OpenCV入門教程之六】 創(chuàng)建Trackbar & 圖像對比度抱冷、亮度值調(diào)整
1. 創(chuàng)建軌跡條
int createTrackbar(const String& trackbarname, const String& winname,
int* value, int count,
TrackbarCallback onChange = 0,
void* userdata = 0);
-
const String& trackbarname
: 軌跡條名启绰,用來代表我們創(chuàng)建的軌跡條 -
const string& winname
: 窗口名埋哟,軌跡條所在窗口 -
int* value
: 一個指向整型的指針疤祭,表示滑塊的位置嚎尤。并且在創(chuàng)建時苦酱,滑塊的初始位置就是該變量當(dāng)前的值切威。 -
int count
: 表示滑塊可以達(dá)到的最大位置的值育特。滑塊最小的位置的值始終為0先朦。 -
TrackbarCallback onChange = 0
: 首先注意他有默認(rèn)值0且预。這是一個指向回調(diào)函數(shù)的指針,每次滑塊位置改變時烙无,這個函數(shù)都會進(jìn)行回調(diào)锋谐。并且這個函數(shù)的原型必須為void fun(int,void*)
其中第一個參數(shù)是軌跡條的位置,第二個參數(shù)是用戶數(shù)據(jù)(看下面的第六個參數(shù))截酷。如果回調(diào)是NULL指針涮拗,表示沒有回調(diào)函數(shù)的調(diào)用,僅第三個參數(shù)value有變化迂苛。 -
void* userdata = 0
他也有默認(rèn)值0三热。這個參數(shù)是用戶傳給回調(diào)函數(shù)的數(shù)據(jù),用來處理軌跡條事件三幻。如果使用的第三個參數(shù)value實(shí)參是全局變量的話就漾,完全可以不去管這個userdata參數(shù)。
創(chuàng)建一個 trackbar念搬, threshval 是全局變量
createTrackbar("Threshold", "trackbar", &threshval, 255, on_trackbar);
2. 獲取當(dāng)前軌跡條的位置并返回
int getTrackbarPos(const String& trackbarname, const String& winname);
參數(shù)同上抑堡。