Ошибка подтверждения отладки при обнаружении точек объекта и сцены в OpenCV - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь извлечь запрос, обучить ключевые точки и создать гомографию в OpenCV. Я делаю это, используя следующий блок кода:

//Object and Scene are both vector<vector<Point2f>, and H is a cv::Mat. 
//keypoints 1 and 2 are both vector<cv::keypoints>
//good_matches are vector<cv::DMatches>
for (size_t i = 0; i < good_matches.size(); i++)
{
    try {
        object.push_back(keypoints1[good_matches[i].queryIdx].pt);
        scene.push_back(keypoints2[good_matches[i].trainIdx].pt);
    }
    catch (cv::Exception & e) {
        std::cout << e.msg << std::endl;
    }
}

Цель состоит в том, чтобы создать гомографию:

H = findHomography(object, scene, cv::RANSAC);

Но всякий раз, когда я подаю камеру размытой рамке, она бросаетокно ошибки:

Debug Assertion Error
File: debug_heap.cpp (line 996)
Expression: __acrt_first_block == header

Сначала я подумал, что я пытаюсь получить доступ к неопределенной / очищенной переменной в куче, но это не так (после некоторой одношаговой отладки).

Я сделалнекоторые исследования онлайн, и люди сказали, что эта ошибка вызвана библиотеками, и решение состоит в том, чтобы использовать релизные библиотеки в режиме отладки, но в моем случае это даже не компилируется, а файл, на который есть ссылка - opencv_world411.lib, не существует в моем Cmakeсборка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...