源码:
int blurAmount = 15;//滑动条位置
//滑动条回调函数
static void onChange(int pos,void* userInput){
if(pos<=0){
return;
}
Mat imgBlur;
Mat* img = (Mat*)userInput;
//应用模糊滤镜
blur(*img,imgBlur,Size(pos,pos));
//显示输出
imshow("me",imgBlur);
}
//鼠标回调函数
static void onMouse(int event,int x,int y,int ,void* userInput){
if(event != EVENT_LBUTTONDOWN)
return;
Mat* img = (Mat*)userInput;
//绘制圆
circle(*img,Point(x,y),10,Scalar(0,255,0),3);
//调用模糊处理方法
onChange(blurAmount,img);
}
Mat me = imread("../../Data/imagedata/gg.jpg");
namedWindow("me",WINDOW_AUTOSIZE);
//创建一个滑动条
createTrackbar("me","me",&blurAmount,30,onChange,&me);
setMouseCallback("me",onMouse,&me);
//调用onChange初始化
onChange(blurAmount,&me);
imshow("me",me);
waitKey(0);
destroyWindow("me");