OpenCV鼠标调用

OpenCV mouse calls?

本文关键字:调用 鼠标 OpenCV      更新时间:2023-10-16

我使用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