我正在使用ubuntu 12.04,我已经安装了opencv 2.4(实际上,我安装了ROS,opencv随之安装)我正在尝试运行此demo而我收到此错误:
usama@ubuntu:~/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升级到新版本吗?
答案 0 :(得分:3)
自OpenCV 2.4.2起,您可以cv::Algorithm使用cv::FaceRecognizer等getMat(...)
函数作为cv::FaceRecognizer。 (官方)OpenCV 2.4.0和OpenCV 2.4.1中的cv::Algorithm不是基于http://www.opencv.org,因此OpenCV 2.4.2文档中的示例不适用于OpenCV 2.4。 0 / 2.4.1发布。
是的,我建议更新到OpenCV 2.4.2。它已在几天前正式发布,请参阅http://bytefish.de/dev/cpp/facerec_demo.cpp上的新用户页面。
如果您无法更新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 bugtracker上发布错误:
如果您没有注意到。您还可以在以下方面询问与OpenCV相关的问题:
很多OpenCV专家都在这里。