Having trouble creating a class based implementation of OpenCV's mouseCallback function

后端 未结 2 1472
遥遥无期
遥遥无期 2021-02-09 23:11

As the title suggest, I\'m having some trouble implementing OpenCV\'s mouseCallback function in a class based C++ structure. Allow me to explain. I have defined a class called B

2条回答
  •  忘了有多久
    2021-02-10 00:16

    Since a member function takes a this pointer, you will need a static wrapper function. Typically, you use the param parameter to be the address of the object that the member function belongs to, so you end up with something like this:

    ...
    static void mouseCallback(int event, int x, int y, int flags, void *param);
    
    void doMouseCallback(int event, int x, int y, int flags);
    

    And then inside the mouseCallback:

    void BriskMatching::mouseCallback(int event, int x, int y, int flags, void *param)
    {
        BriskMatching *self = static_cast(param);
        self->doMouseCallback(event, x, y, flags);
    }
    

提交回复
热议问题