Я видел документацию OpenCV. Там, SurfFeatureDetector
, SurfDescriptorExtractor
а также BruteForceMatcher
используются.
Но когда я пытаюсь в моем коде, это показывает —
Ошибка: идентификатор «SurfFeatureDetector» не идентифицирован.
То же самое для двух других.
Пройдя через некоторые темы и форумы, я попытался включить некоторые заголовочные файлы, например #include <opencv2 nonfree="" features2d.hpp="">
и некоторые другие, но эти файлы не существуют. Так показывает еще одну ошибку, говоря —
Ошибка: не удается открыть исходный файл «opencv2 / nonfree / features2d.hpp»
Есть ли альтернативный способ сделать это в OpenCV 3.0.0?
У меня была похожая проблема, и она была исправлена, когда я собирал Opencv локально в своей системе вместо использования предварительно собранных библиотек. Вы можете обратиться к этой теме за сборкой Opencv в вашей системе. Где находится папка lib (или ее замена) в текущем OpenCV?
В opencv3.0 SURF / SIFT / BruteForceMatcher были перемещены в отдельный репозиторий opencv_contrib, вы можете загрузить его и внести изменения в путь cmake для Visual Studio, чтобы распознавать эти функции. Хотя он появился после того, как он был собран в моей системе без каких-либо дополнительных изменений.
После того, как вы построили его локально, вы можете найти его по следующему пути
Build_folder / установить / включить / opencv2 / features2d.hpp
Других решений пока нет …