c++ - OpenCV鼠标调用?

标签 c++ opencv mouse mouseevent

我正在使用 cvSetMouseCallback 来跟踪鼠标点击。但是,我需要将多个参数传递给传递给 cvSetMouseCallback 的函数。然而 cvSetMouseCallback 只接受一个参数将数据传递给它调用的函数。如果有多个参数,我该如何做到这一点?

例如:

cvSetMouseCallback ("Window", function, argumentPassedintofunction);

void function (int event, int x, int y, int flags, void* param, CvRect *drawnRect,    IplImage *skinSegment, IplImage *colourSpaceImg, CvHistogram *skin, IplImage *planes [])

{

}

所以如你所见,我需要向function()传入多个参数,但cvSetMouseCallback只允许传入一个参数。

我不想通过鼠标调用访问操作系统(所以我不想处理这些,我非常想坚持使用 opencv)

也不能将参数设为全局变量。

最佳答案

您可以让函数接受一个包含所有参数的结构。

typedef struct func_params_ {
  int event;
  int x;
  int y;
  int flags;
  void* param;
  CvRect* drawnRect;
  ......
} func_params

关于c++ - OpenCV鼠标调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8002655/

相关文章:

c++ - QT GUI 水平 slider setValue 与 QElapsedTimer

c++ - 音量更改而不为 IAudioEndpointVolume 创建通知

python-3.x - 如何从图像中检测特定点并在python中的多个图像中裁剪

putty 上的 Linux screen 阻止午夜指挥官鼠标操作

c++ - 将字符串转换为 C 风格的字符串并检测空终止字符

c++ - 返回的对象失去属性

macos - OSX 上的 OpenCV - 如何使用辅助摄像头而不是默认摄像头

opencv - OpenCV 最好的卷积神经网络 (CNN) 库是什么? (简单的实现和例子)

visual-studio-2008 - 当我激活 "Focus Follows Mouse"时,如何防止 Visual Studio 自动提升?

c++ - 按住鼠标左键时未生成 WM_MOUSELEAVE