第3章 HighGUI图形用户界面初步_3.3鼠标操作

3_3鼠标操作

鼠标操作采用回调函数的方式进行

设置鼠标操作回调函数:setMouseCallback
void setMouseCallback(const sting& winname,
MouseCallback onMouse,
void* userdata)
参数1 winname:窗口名字
参数2 onMouse:回调函数指针
参数3 userdata:供用户传递参数


回调函数类型
typedef void (*MouseCallback)(int event,
int x,
int y,
int flags,
void* param)
参数1 event:
enum
{
    EVENT_MOUSEMOVE      =0,
    EVENT_LBUTTONDOWN    =1,
    EVENT_RBUTTONDOWN    =2,
    EVENT_MBUTTONDOWN    =3,
    EVENT_LBUTTONUP      =4,
    EVENT_RBUTTONUP      =5,
    EVENT_MBUTTONUP      =6,
    EVENT_LBUTTONDBLCLK  =7,
    EVENT_RBUTTONDBLCLK  =8,
    EVENT_MBUTTONDBLCLK  =9
};
参数2 x:鼠标在图像坐标系(注意不是窗口坐标系)的坐标
参数3 y:鼠标在图像坐标系(注意不是窗口坐标系)的坐标
参数4 flags:
enum
{
    EVENT_FLAG_LBUTTON   =1,
    EVENT_FLAG_RBUTTON   =2,
    EVENT_FLAG_MBUTTON   =4,
    EVENT_FLAG_CTRLKEY   =8,
    EVENT_FLAG_SHIFTKEY  =16,
    EVENT_FLAG_ALTKEY    =32
};

例:
void onMouseHandle(int event, int x, int y, int flag, void* param)
{
...
switch(event)
{
case:EVENT_MOUSEMOVE:
...
break;
...
}
}

int main()
{
...
setMousCallback("win",
on_MouseHandle,
(void*)&srcImage)
...

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: HighGUI是OpenCV中的一个模块,它提供了一些基本的图形用户界面GUI)功能,包括图像的读取、显示和保存到文件,以及创建和使用滑动条和鼠标事件等。这些功能可以让用户快速地进行图像处理和计算机视觉的开发和实验。HighGUI的主要目的是为OpenCV提供一个简单易用的界面,使得用户可以快速地进行图像处理和计算机视觉的实验和开发。 ### 回答2: HighGUI图形用户界面是一种用于图像处理的工具,它提供了图像的载入、显示和输出到文件的功能。使用HighGUI,我们可以轻松地将图像加载到程序中,并在程序中显示出来。 首先,我们需要使用HighGUI提供的函数加载图像。可以通过指定图像文件的路径来实现,函数会自动读取图像的像素值并将其存储在一个矩阵中。通过这个矩阵,我们可以对图像进行各种高级操作。 接下来,我们可以使用HighGUI提供的函数来显示图像。通过简单的调用显示函数,我们可以将图像显示在一个窗口中。同时,HighGUI还支持在图像上绘制标记和文本,以便进行更精确的操作。 此外,HighGUI还提供了将图像输出到文件的功能。我们可以将当前显示的图像保存为各种格式的图像文件,并指定保存路径。这对于需要保存处理结果或分享图像非常有用。 HighGUI还支持滑动条的创建和使用,这使得我们可以通过滑动条来改变图像的参数或操作。例如,我们可以创建一个滑动条来调整图像的亮度或对比度,以便在实时显示中进行调整。 最后,HighGUI还支持鼠标操作。通过这些功能,我们可以在图像上进行交互,例如点击鼠标来获取图像中的特定像素值,或拖动鼠标来进行图像的移动或变形操作。 综上所述,HighGUI图形用户界面提供了图像处理中常用的功能,包括图像的载入、显示和输出到文件,滑动条的创建和使用,以及鼠标操作。这些功能使得图像处理变得更加方便和灵活。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值