第
OpenCVc++滑动条的创建和使用代码
目录什么是滑动条创建滑动条参考代码获取当前滑动条位置参考代码总结
什么是滑动条
滑动条是OpenCV动态调节参数特别好用的工具,它依附于窗口而存在。
创建滑动条
在OpenCV中,可以使用createTrackbar函数来创建一个可以调整数值的滑动条,并将滑动条附加到指定的窗口上。
参考代码
intcreateTrackbar(conststringtrackbarname,conststringwinname,int*value,intcount,TrackbarCallbackonChange=0,void*userdata=0)
其中,trackbarname表示我们创建的滑动条的名字。winname表示这个滑动条吸附在的窗口的名字。value表示滑块的位置,在创建时,滑块的初始位置就是该变量的值。count表示滑块可以到达的最大值,最小值始终为0。onChange表示指向回调函数的指针,每次滑块位置改变时,这个函数都会进行回调。回调的类型为voidxx(int,void*),其中第一个参数表示轨迹条的位置,第二个参数表示用户数据userdata。userdate表示传给回调函数的用户数据。
#includeopencv2/core/core.hpp
#includeopencv2/highgui/highgui.hpp
#includeopencv2/imgproc/imgproc_c.h
#includeopencv2/imgproc/types_c.h
#includeopencv2/imgproc.hpp
#includeiostream
usingnamespacestd;
usingnamespacecv;
Matimage,srcImage;
intthresholds=50;
voidthreshold_track(int,void*){
Matresult;
threshold(srcImage,result,thresholds,255,THRESH_BINARY);
//Canny(srcImage,result,thresholds,thresholds*3,3);
imshow(边缘检测,result);
intmain(){
image=cv::imread(...cc.png);
if(!image.data)
return1;
cvtColor(image,srcImage,COLOR_BGR2GRAY);
namedWindow(边缘检测,WINDOW_AUTOSIZE);
createTrackbar(阈值,边缘检测,thresholds,300,threshold_track);
waitKey(0);
return0;
获取当前滑动条位置
在OpenCV中,可以使用getTrackbarPos()函数来获取当前滑动条的位置。
intgetTrackbarPos(conststringtrackbarname,conststringwinname);
其中第一个参数表示滑动条的名字,第二个参数表示轨迹条的父窗口的名称。
总结