我有一个问题,有关在C++中使用类时如何在OpenCV中定义轨迹栏的回调。
当我定义轨迹栏时,让我们在.cpp类的构造方法中说如何定义回调?
我一直在尝试使用函数指针,但没有成功。我想我一定做错了什么:-)
这是我的头文件:
class SliderwithImage {
public:
SliderwithImage(void);
~SliderwithImage(void);
void sliderCallBack(int pos);
};
这是实现文件:
#include "SliderwithImage.h"
void SliderwithImage::sliderCallBack(int pos) {
}
SliderwithImage::SliderwithImage(void) {
const char* windowName = "window";
int lowvalue =1;
namedWindow(windowName, CV_GUI_EXPANDED);
createTrackbar("mytrackbar", windowName, &lowvalue, 255, sliderCallBack);
}
SliderwithImage::~SliderwithImage(void) {
}
显然,createTrackbar方法无法识别sliderCallBack ...我想这是范围问题。但是我不确定该如何解决?
任何帮助,将不胜感激。
非常感谢你。
最佳答案
您必须将回调函数实现为全局函数或静态成员函数。为了使其具有更多的OOP外观,您可能希望将其实现为静态成员函数:)