在OpenCV中检测对象和场景点时出现调试断言错误

我正在尝试提取查询并训练关键点,并在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版本中不存在。

xxiaoabc 回答:在OpenCV中检测对象和场景点时出现调试断言错误

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3137724.html

大家都在问