Ошибка времени компиляции при объявлении алгоритма SIFT - PullRequest
0 голосов
/ 16 октября 2019

Я собрал opencv с Cmake и попробовал несколько вещей, таких как отображение видеопотока и загрузка изображений, работал нормально.

Затем я попытался использовать алгоритмы обнаружения функций (sift, surf и т. Д.) И получил различные ошибки,После небольшого исследования StackOverflow я наткнулся на следующую документацию: https://docs.opencv.org/master/db/dfa/tutorial_transition_guide.html#tutorial_transition_hints_headers

Здесь говорится, что хороший способ объявить алгоритм следующий:

cv::Ptr<cv::xfeatures2d::SIFT> sift2 = cv::xfeatures2d::SIFT::create(0, 4, 0.04, 10, 1.6);

однако это даетмне ошибка при компиляции. Ошибка:

unsolved external symbol "public: static_struct cv::Ptr..." referenced in main

Я должен упомянуть, что после того, как я собрал OpenCV с Cmake, я включил файлы xfeatures2d в папку include. Поэтому я не собирал библиотеку с помощью файлов contrib. Это причина ошибки или я что-то упустил? Потому что я могу открыть файл и увидеть, что у xfeatures2d действительно есть член SIFT, и я предполагаю, что у него есть функция create (), так как Visual Assist перечисляет все типы параметров.

...