我有一个我最近偶然发现的问题。我在这里查看了许多来源,但找不到任何有用的解决方案。我想实现setMouseCallback是基于类的方法。我在HandGesture.h
中公开解释了这个功能,如下所示:
void MouseEvents(int event, int x, int y, int flags, void* userData);
并在HandGesture.cpp
中声明如下
void HandGesture::MouseEvents(int event, int x, int y, int flags, void* userData){
switch (fingerTips.size()){
case 1:
event == EVENT_LBUTTONDOWN;
break;
case 2:
event == EVENT_RBUTTONDOWN;
break;
case 3:
event == EVENT_MBUTTONDOWN;
break;
default:
event == EVENT_MOUSEMOVE;
}
现在如果我想在neigbour函数中调用setMouseCallback函数,它会给我以下错误:
Error: argument of type "void(HandGesture*)(int event,int x, int y, int flags, void* userData)" is incompatible with parameter of type "cv::MouseCallback"
我试过用:
static void HandGesture::MouseEvents(int event, int x, int y, int flags, void* userData)
它没有帮助。由于我使用的是不是静态的向量fingerTips
,因此MouseEvents
函数无法识别它。
非常感谢任何帮助。提前谢谢!