2015-04-22 49 views
3

我正在使用opencv-3.0,從opencv文檔實現此opencv facial recognition demo錯誤:'cv :: face :: FaceRecognizer'中沒有名爲'getMat'的成員

我相信這個演示是用opencv-2.4編寫的。但是,我已將contrib src添加到我的版本中,正如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

回答

0

根據this example,在下面的行的model指針FaceRecognizer類實例,而不是對象本身。

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

因此,有意義的是,getMat功能沒有在FaceRecognizer類中定義,但它應該爲Ptr<FaceRecognizer>來限定。

+0

小心,上面的答案是**只有**對於現在**過時的rc3.0 **版本有效,api已更改[再次](http://docs.opencv.org/ref/master/dc/ dd7/classcv_1_1face_1_1BasicFaceRecognizer.html#ab34eeaa66965821c0593e03ffe1d3a74)(上面引用的文檔也是過時的)。請查看更新的[教程](http://docs.opencv.org/ref/master/da/d60/tutorial_face_main.html) – berak

相關問題