【openCV】— 轨迹条和鼠标动作响应

一、轨迹条的创建和使用

#include <iostream>
#include <opencv2\opencv.hpp>
using namespace cv;


Mat mm = imread("girl.jpeg");  //也可以使用user传参,把它写进局部变量里


void mohu(int pos , void*user)  //第一个参数将由滑动条函数的position传入,第二个参数又用户定义参数,当滑动条的值改变时,才会执行这个响应函数
{


Mat implicitpic;

blur(mm, implicitpic, Size(1+pos, 1+pos));   //模糊操作
imshow("picPro", implicitpic);
printf("%d", getTrackbarPos("SLIDE", "picPro"));//获取滑动条位置

}

   int main()
    {
      
        int position = 50;
        namedWindow("picPro");
        int positon;
        createTrackbar("SLIDE", "picPro", &position, 100, mohu);  //创建轨迹条
        mohu(100,0);  //100代表滑动条的初始位置

       // posNow = getTrackbarPos("SLIDE", "picPro");  //获取滑动条位置
       
        waitKey(0);

return 0;
}

二、鼠标动作的捕捉和响应

#include <iostream>
#include <opencv2\opencv.hpp>
using namespace cv;
using namespace std;

void OnMouseAction(int event, int x, int y, int flags, void* ustc)
{
    int static times; //记录调用次数
    times++;
    //cout << "第 " << times << " 次回调鼠标事件" << endl;
 

    switch (event)
    {

    case EVENT_MOUSEMOVE:

        cout << "触发鼠标移动事件" << endl;

    case EVENT_LBUTTONDOWN:

        cout << "触发左键按下事件" << endl;

    case EVENT_LBUTTONUP:

        cout << "触发左键抬起事件" << endl;

    case EVENT_RBUTTONDOWN:

        cout << "触发右键按下事件" << endl;

    case EVENT_RBUTTONUP:

        cout << "触发右键抬起事件" << endl;

    case  EVENT_LBUTTONDBLCLK:

        cout << "触发左键双击事件" << endl;

    case EVENT_RBUTTONDBLCLK:

        cout << "触发右键双击事件" << endl;
    }
}



 int main()
    {

     namedWindow("ceshi");
            setMouseCallback("ceshi", OnMouseAction);
            waitKey();
            system("pause");
      
return 0;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

繁荣生长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值