强制性-我是新手。有一份涉及编程的工作,并且我一边工作一边自学。不用说,作为一名老师,我经常犯彻底的错误。
我现在所处的位置:我创建了“Graph”类,它(令人惊讶的是)制作了图表。但现在我想通过单击鼠标来修改图形。但我似乎无法让鼠标处理程序成为该类的成员函数。
cv::setMouseCallback(windowName, onMouse, 0); // Set mouse handler to be onMouse
不适用于
cv::setMouseCallback(windowName, Graph::onMouse, 0);
它给了我缺少参数错误。根据this https://stackoverflow.com/questions/6489457/cvsetmousecallback-in-opencv-2-1-managed-c-cli-c我无法将其设为成员函数。按照给出的答案后,它编译了,但我的this
指针为空。啊。
OnMouse 看起来像这样:
void onMouse(int event, int x, int y,int, void*)
{
if (event == CV_EVENT_LBUTTONDOWN)
{
cvMoveWindow("Window", 500, 500); //Just to see if stuff happened
}
return;
}
我不关心移动窗口,我想修改图形本身 - 它作为 cv::Mat 变量存储在 Graph 对象中。我不知道该怎么做。
任何帮助将不胜感激,我真的希望这不仅仅是胡言乱语。