Я пытаюсь извлечь запрос, обучить ключевые точки и создать гомографию в 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сборка.