滑动条:
createTrackbar(const string& trackbarname, const string& winname, int* value, int count, TrackbarCallback onChange = 0,
void* userdata = 0);
参数分别对应为:滑动条名称;显示窗口名称;当滑动条移到时,把当前位置的值传出来;滑动条最大值;回调函数,每次滑块位置改变时,这个函数都会进行回调。并且这个函数的原型必须为void,其中第一个参数是轨迹条的位置,第二个参数是用户数据
具体代码:
#include<opencv2\core\core.hpp>
#include<opencv2\imgproc\imgproc.hpp>
#include<opencv2\highgui\highgui.hpp>
using namespace cv;
int threshold1;
int threshold2;
//回调函数
void on_change(int,void*){
Mat image=imread("F:\\opencv_test\\6.tif");
Mat result;
//canny算子,threshold1,threshold2表示双阈值
Canny(image,result,threshold1,threshold2);
imshow("canny",result);
}
int main(){
threshold1=0;
threshold2=0;
namedWindow("canny",0);
//创建滑动条
createTrackbar("low threshold","canny",&threshold1,300,on_change);
createTrackbar("high threshold","canny",&threshold2,300,on_change);
//调用回调函数
on_change(threshold1,0);
on_change(threshold2,0);
waitKey(0);
return 0;
}