У меня проблемы с cv :: BFMatcher, когда я пытаюсь выполнить сопоставление функций. Я вычисляю дескрипторы с помощью дескриптора xfeatures2D :: SIFT. Когда я пытаюсь выполнить сопоставление, вывод приложения показывает «Исключение в 0x7ff833308b9c, код: 0xe06d7363: исключение C ++, flags = 0x1 (выполнение не может быть продолжено) (первый шанс) в f: \ dd \ vctools \ crt_bld \ self_64_amd64 \ crt \ src \ xthrow.cpp: 13 «Код выглядит примерно так:
matchesltor.clear();
matchesrtol.clear();
cv::BFMatcher matcher(cv::NORM_L2);
ProcessedImageData *imageDataLeft = mImageDataMap.value(mapKeyList.at(m));
std::vector<cv::KeyPoint> tiePointsLeft = imageDataLeft->getTiepoints();
cv::Mat descriptorsLeft= imageDataLeft->getDescriptors();
ProcessedImageData *imageDataRight = mImageDataMap.value(mapKeyList.at(n));
std::vector<cv::KeyPoint> tiePointsRight = imageDataRight->getTiepoints();
cv::Mat descriptorsRight= imageDataRight->getDescriptors();
matcher.knnMatch(descriptorsLeft,descriptorsRight,matchesltor,2)
matcher.knnMatch(descriptorsRight,descriptorsLeft,matchesrtol,2)
Выходное сообщение отображается в первой строке, которая выполняет сопоставление «matcher.knnMatch (descriptorsLeft, descriptorsRight, matchltor, 2)».
Странно то, что он работает в одном проекте qt, который выполняет только обнаружение связующих точек, описание связующих точек и сопоставление, но когда я пытаюсь присоединить его к другому проекту (тот же код, тот же компилятор и та же версия qt), он показывает этот вывод сообщение и остановка выполнения (приложение не прерывается).
Спасибо за вашу помощь.
Задача ещё не решена.