我正在使用 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/