Problemy z tworzeniem opartej na klasie implementacji funkcji mouseCallback OpenCV
Jak sugeruje tytuł, mam pewne problemy z implementacją funkcji mouseCallback OpenCV w opartej na klasach strukturze C ++. Pozwól mi wyjaśnić. Zdefiniowałem klasę o nazwie BriskMatching, w której utworzyłem funkcję składową o nazwie mouseCallback z poprawnymi parametrami wymaganymi przez OpenCV (zobacz fragment kodu poniżej).
**Briskmatching.h**
class BriskMatching
{
public:
BriskMatching();
~BriskMatching();
public:
void mouseCallback(int event, int x, int y, int flags, void *param);
};
Wszystko jest w porządku, jednak mój problem pojawia się, gdy próbuję ustawić tę funkcję jako wyznaczoną funkcję wywołania zwrotnego za pomocą myszy OpenCVcv::setMouseCallback
funkcjonować.
W mojej głównej funkcji tworzę instancję klasy BriskMatching o nazwie briskMatcher, a gdy nadejdzie czas na ustawienie wywołania zwrotnego myszy, próbuję to zrobić w ten sposób ...
cv::setMouseCallback("Matches", BriskMatching::mouseCallback, &matchesImg);
Niestety, to powoduje błąd.
Error 3 error C3867: 'BriskMatching::mouseCallback': function call missing argument list; use '&BriskMatching::mouseCallback' to create a pointer to member c:\users\mobilef\documents\visual studio 2010\projects\opencv_objtracking\opencv_briskmatching\main.cpp 54 1 OpenCV_BriskMatching
Mogłem pozbyć się tego błędu, deklarując funkcję mouseCallback jakostatic
wBriskMatching.h
ale potem dostaję całą masę innych błędów, ponieważ odwołuję się do wielu niestatycznych zmiennych składowych w funkcji mouseCallback.
Więc moje pytanie do was jest takie. W jaki sposób należy zmodyfikować mój kod, aby móc poprawnie przekazać funkcję mouseCallback zadeklarowaną w klasie BriskMatching docv::setMouseCallback
funkcjonować?
Dziękujemy za całą pomoc w zaawansowanym!