я использую opencv-3.0
, чтобы реализовать это демонстрация распознавания лиц opencv из документации opencv.
Я считаю, что это демо было написано с использованием opencv-2.4
, Тем не менее, я добавил contrib
Src для моей сборки, как было рекомендовано в этом Так ответь.
Однако теперь я получаю следующую ошибку:
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
?
В соответствии с этот пример, model
в следующей строке указатель к FaceRecognizer
экземпляр класса, а не сам объект.
129: Ptr<FaceRecognizer> model = createEigenFaceRecognizer();
...
143: Mat eigenvalues = model->getMat("eigenvalues");
Таким образом, имеет смысл, что getMat
функция не определена в FaceRecognizer
класс, но он должен быть определен для Ptr<FaceRecognizer>
,