我正在尝试提取查询并训练关键点,并在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
我首先想到我试图访问堆上未定义/清除的变量,但事实并非如此(经过一些单步调试)。
我在线上进行了一些研究,有人说此错误是由库引起的,解决方案是在调试模式下使用发布库,但就我而言甚至无法编译,以及所引用的文件-{{1 }}在我的Cmake版本中不存在。