2012-07-07 65 views
1

想我使用的Ubuntu 12.04臉部識別演示,和我已經安裝了OpenCV的2.4(其實,我安裝了ROS,OpenCV的獲取與安裝它)我試圖運行這個demo和我得到這個錯誤:錯誤在OpenCV的

[email protected]:~/Desktop/opencv/Advanced/Face Recognition$ g++ `pkg-config opencv --cflags`  face_recog.cpp -o face_recog `pkg-config opencv --libs` 
face_recog.cpp: In function ‘int main(int, const char**)’: 
face_recog.cpp:119:30: error: ‘class cv::FaceRecognizer’ has no member named ‘getMat’ 
face_recog.cpp:121:20: error: ‘class cv::FaceRecognizer’ has no member named ‘getMat’ 
facerecog.cpp:123:23: error: ‘class cv::FaceRecognizer’ has no member named ‘getMat’ 

任何想法,我該如何擺脫這個錯誤?我應該升級opencv到新版本嗎?

回答

3

只有在OpenCV 2.4.2以後,您纔可以使用cv::Algorithm功能,如cv::FaceRecognizergetMat(...)。在cv::FaceRecognizer(官方)OpenCV的2.4.0和OpenCV 2.4.1不是基於cv::Algorithm,所以從OpenCV的2.4.2文檔的例子不會OpenCV的2.4.0/2.4.1版本一起使用。

所以,是的,我會建議更新到2.4.2 OpenCV的。它已經正式發佈的前幾天,看到新的用戶頁面的http://www.opencv.org

如果您不能更新OpenCV的,那麼你既可以嘗試的OpenCV 2.4.0/2.4.1兼容演示:

或者你給libfacerec一試,這具有相同的接口OpenCV的2.4.2實現:

這真的取決於你的OpenCV的版本。如果您使用OpenCV 2.3,請嘗試使用libfacerec的版本0.04。但是,如果你正在使用的OpenCV 2.4.2已經和你有問題,那麼請在官方OpenCV的錯誤追蹤系統發出了一個錯誤:

如果你沒有注意到。您也可以要求OpenCV的相關的問題上:

其中很多OpenCV的專家正。