OpenCV学习笔记(11)createTrackbar使用方法及步骤

转载自:http://blog.csdn.net/mysee1989/article/details/41379817

createTrackbarOpenCV中的API,其可在显示图像的窗口中快速创建一个滑动控件,用于手动调节阈值,具有非常直观的效果。具体定义如下:

[cpp]  view plain  copy
  1. CV_EXPORTS int createTrackbar(const string& trackbarname, const string& winname,  
  2.                               int* value, int count,  
  3.                               TrackbarCallback onChange = 0,  
  4.                               void* userdata = 0);  

形式参数一、trackbarname:滑动空间的名称;

形式参数二、winname滑动空间用于依附的图像窗口的名称;

形式参数三、value初始化阈值;

形式参数四、count滑动控件的刻度范围;

形式参数五、TrackbarCallback是回调函数,其定义如下:

[cpp]  view plain  copy
  1. typedef void (CV_CDECL *TrackbarCallback)(int pos, void* userdata);  

其使用示例代码如下:

[cpp]  view plain  copy
  1. IplImage *src = NULL, *thresDst = NULL;  
  2. int threshold_min = 100;;  
  3. int max_lowThreshold = 255;  
  4.   
  5. cvNamedWindow("threshold", CV_WINDOW_AUTOSIZE);  
  6.       
  7. thresDst = cvCloneImage(src);  
  8. createTrackbar("min Threshold""threshold", &threshold_min, max_lowThreshold,  
  9.         threshold);  
  10. threshold(0,0);  

可以看出,createTrackbar的第二个参数,必须和cvNameWindow的第一个参数完全一致。其中回调函数定义及实现如下:

[cpp]  view plain  copy
  1. void threshold(intvoid*)  
  2. {  
  3.     cvThreshold(src , thresDst , threshold_min , 255 , CV_THRESH_BINARY ) ;  
  4.     cvShowImage("threshold", thresDst);  
  5. }  

如此,即可在图像窗口上方成功创建一个滑动控件,其效果如下(左边是原图像,右边是带有滑动控件的二值图像):

                                                    

你可能感兴趣的:(OpenCV)