OpenCV鼠标调用?

时间:2011-11-03 22:22:14

标签: 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只允许传入一个参数。

我不想访问MOUSE CALLS的操作系统(所以不是句柄和其中任何一个,我严格要坚持使用opencv)

同样使参数全局变量也不是一种选择。

1 个答案:

答案 0 :(得分:0)

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

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