1

我正在使用 ubuntu 12.04,并且我已经安装了 opencv 2.4(实际上,我安装了 ROS,opencv 随它一起安装)我正在尝试运行这个演示,但我收到了这个错误:

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升级到新版本吗?

4

1 回答 1

3

只有从 OpenCV 2.4.2 开始,您才能使用cv::Algorithm函数,例如getMat(...)cv ::FaceRecognizer。(官方)OpenCV 2.4.0 和 OpenCV 2.4.1 中的cv::FaceRecognizer不是基于cv::Algorithm,因此 OpenCV 2.4.2 文档中的示例不适用于 OpenCV 2.4.0/ 2.4.1 发布。

所以是的,我建议更新到 OpenCV 2.4.2。它已于几天前正式发布,请参见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 专家都在哪里。

于 2012-07-07T11:46:56.623 回答