OpenCV学习笔记(11)createTrackbar使用方法及步骤
转载自:http://blog.****.net/mysee1989/article/details/41379817
createTrackbar是OpenCV中的API,其可在显示图像的窗口中快速创建一个滑动控件,用于手动调节阈值,具有非常直观的效果。具体定义如下:
- CV_EXPORTS int createTrackbar(const string& trackbarname, const string& winname,
- int* value, int count,
- TrackbarCallback onChange = 0,
- void* userdata = 0);
形式参数一、trackbarname:滑动空间的名称;
形式参数二、winname:滑动空间用于依附的图像窗口的名称;
形式参数三、value:初始化阈值;
形式参数四、count:滑动控件的刻度范围;
形式参数五、TrackbarCallback是回调函数,其定义如下:
- typedef void (CV_CDECL *TrackbarCallback)(int pos, void* userdata);
其使用示例代码如下:
- IplImage *src = NULL, *thresDst = NULL;
- int threshold_min = 100;;
- int max_lowThreshold = 255;
- cvNamedWindow("threshold", CV_WINDOW_AUTOSIZE);
- thresDst = cvCloneImage(src);
- createTrackbar("min Threshold", "threshold", &threshold_min, max_lowThreshold,
- threshold);
- threshold(0,0);
可以看出,createTrackbar的第二个参数,必须和cvNameWindow的第一个参数完全一致。其中回调函数定义及实现如下:
- void threshold(int, void*)
- {
- cvThreshold(src , thresDst , threshold_min , 255 , CV_THRESH_BINARY ) ;
- cvShowImage("threshold", thresDst);
- }
如此,即可在图像窗口上方成功创建一个滑动控件,其效果如下(左边是原图像,右边是带有滑动控件的二值图像):