我正在使用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)
同样使参数全局变量也不是一种选择。
答案 0 :(得分:0)
你可以让函数接受包含所有参数的结构。
typedef struct func_params_ {
int event;
int x;
int y;
int flags;
void* param;
CvRect* drawnRect;
......
} func_params