OpenCV вызывает мышь? - PullRequest
       6

OpenCV вызывает мышь?

1 голос
/ 04 ноября 2011

Я использую 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 [])

{

}

Итак, как вы видите, мне нужно передать более одного параметра в функцию (), но cvSetMouseCallbackпозволяет передавать только один аргумент.

Я НЕ ХОЧУ ДОСТУПАТЬ К ОС для ВЫЗОВОВ МЫШИ (поэтому я не хочу обращаться с этим, я строго хочу придерживаться opencv)

Такжеделать аргументы глобальными переменными не вариант.

1 Ответ

0 голосов
/ 04 ноября 2011

Вы можете заставить функцию принимать структуру, которая содержит все параметры.

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