我想重写我的软件以使用多个核心。 不幸的是,我总是遇到错误。我不知道我是否需要特定的包括, 语法错误,或者可能已弃用?
完整代码:
#include <opencv2/core/core.hpp>
#include <opencv2/objdetect/objdetect.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <string>
#include <fstream>
using namespace cv;
using namespace std;
class Parallel_proc : public ParallelLoopBody
{
private:
Mat img;
Mat retVal;
public:
Parallel_proc(Mat pGrayImg)
: img(pGrayImg){}
virtual void operator()(const Range& range) const
{
for(int i = range.start; i < range.end; i++)
{
//code here
}
}
};
int main(int argc, char* argv[])
{
//cv::parallel_for_(cv::Range(0, cascadesNumber), Parallel_proc(pGrayImg);
}
return 0;
}
G ++错误:
example.cpp:16:1: error: expected class-name before ‘{’ token
有趣的是g ++指向该行的第一个字符,但clang ++更具体:
example.cpp:15:30: error: expected class name
class Parallel_proc : public ParallelLoopBody
^
编译命令:
(clan)g++ `pkg-config --libs --cflags opencv` -I. -o example example.cpp -lopencv_core -lopencv_calib3d -lopencv_imgproc -lopencv_highgui -lopencv_objdetect