3

我正在使用opencv-3.0, 来实现 opencv 文档中的这个opencv 面部识别演示

我相信这个演示是使用opencv-2.4. 但是,我已将contribsrc 添加到我的构建中,正如此SO answer中所建议的那样。

但是,我现在收到以下错误:

error: no member named 'getMat' in 'cv::face::FaceRecognizer'

违规代码是

Mat eigenvalues = model->FaceRecognizer::getMat("eigenvalues");

我正在编译我的代码

g++ -o facerec_demo facerec_demo.cpp `pkg-config --cflags --libs opencv`

有没有办法解决这个问题,或者这个演示完全不兼容opencv-3.0

4

1 回答 1

0

根据这个例子model下一行是一个指向类实例的指针,FaceRecognizer而不是对象本身。

129:    Ptr<FaceRecognizer> model = createEigenFaceRecognizer();
        ...
143:    Mat eigenvalues = model->getMat("eigenvalues");

getMat因此,函数没有在类中定义是有道理的FaceRecognizer,但应该为Ptr<FaceRecognizer>.

于 2015-09-18T00:27:15.153 回答