2012-07-07 80 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的专家正。