OpenCv2 ParallerLoop编译错误

时间:2014-07-17 08:37:28

标签: c++ opencv compilation parallel-processing

我想重写我的软件以使用多个核心。 不幸的是,我总是遇到错误。我不知道我是否需要特定的包括, 语法错误,或者可能已弃用?

完整代码:

#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

0 个答案:

没有答案