В Open Cv 3.0.0 класс FaceRecognizer не может быть разрешен при компиляции в Linux (Ubuntu). Раньше это работало в версии 2.4.11, и класс присутствовал в модуле contrib. Похоже, модуль contrib отсутствует в версии Open cv 3.0.0.
Класс Open cv 3.0.0 FaceRecognizer не может быть разрешен при компиляции в Linux (Ubuntu)
Ответы (1)
Модуль contrib по умолчанию не поставляется с установкой open cv 3.0.0.
Модуль contrib должен быть установлен отдельно. Пожалуйста, следуйте приведенным ниже инструкциям, чтобы избавиться от проблемы компиляции с классом FaceRecognizer.
- Сначала перейдите в каталог сборки в open cv. Это может называться сборка или выпуск, если вы установили версию open cv 3.0.0.
- Там вы можете запустить следующую команду, чтобы установить модуль contrib
cmake -DOPENCV_EXTRA_MODULES_PATH=opencv_contrib/modules opencv_source_directory
В приведенной выше команде opencv_contrib — это путь к каталогу модуля opencv contrib, который вы скачали по ссылке github [https://github.com/Itseez/opencv_contrib/tree/3.0.0-rc1][1]. opencv_source_directory — это исходный каталог opencv, который обычно представляет собой корневую папку open cv, в которую вы его распаковали или загрузили, это будет ../, если вы следовали инструкциям руководства по open cv по установке и созданию папку релиз или сборка
Я использовал тег RC1 open cv 3.0.0 из github, вы можете использовать тег по вашему выбору.
- Теперь выполните следующие две команды
сделать -j $(nproc)
судо сделать установить
- После этого в коде (файл .cpp или .hpp), где вы ссылаетесь на класс FaceRecognizer, поместите следующие пространства имен рядом с #includes
использование пространства имен cv; использование лица пространства имен;
- В качестве альтернативы вы также можете ссылаться на класс с префиксом пространства имен, например, если вы ссылаетесь на FaceRecognizer как cv::FaceRecognizer, теперь ссылайтесь на него как на cv::face::FaceRecognizer. Это просто стиль кодирования. Используйте либо пункт 6, либо стиль 7, но не оба.
Теперь вы не должны видеть никаких проблем с компиляцией.