opencv鼠标事件及添加滑动条对图像进行模糊处理

这里写图片描述

源码:


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");

猜你喜欢

转载自blog.csdn.net/yuxing55555/article/details/80593829