ошибка: нет члена с именем ‘getMat’ в ‘cv :: face :: FaceRecognizer’

я использую 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?

3

Решение

В соответствии с этот пример, model в следующей строке указатель к FaceRecognizer экземпляр класса, а не сам объект.

129:    Ptr<FaceRecognizer> model = createEigenFaceRecognizer();
...
143:    Mat eigenvalues = model->getMat("eigenvalues");

Таким образом, имеет смысл, что getMat функция не определена в FaceRecognizer класс, но он должен быть определен для Ptr<FaceRecognizer>,

0

Другие решения


По вопросам рекламы [email protected]