c++ - OpenCV 与 std::vector 不兼容? (_crtIsValidHeapPointer 错误)

标签 c++ visual-studio opencv

我无法在 vector 中获取 OpenCV 中的类/结构,并在没有任何堆损坏的情况下让函数保持事件状态。每当我打开 native OpenCV 对象的 vector 时,垃圾收集期间就会出现可怕的 _crtIsValidHeapPointer 错误。

上下文:尝试使用 ORB 比较对象和场景图像中的匹配点。在 C++ 中使用 OpenCV 2.3.1。

代码示例:

vector< KeyPoint > objImageKeypoints;
Mat objImageDescriptors;
OrbFeatureDetector detector = orbFeatureDetector( 1000 );

detector.detect( objImage, objImageKeypoints );

... // There's more, but I've commented out the rest
}

在我通过 detect() 方法之后,就没有回头路了。之后,它仍然给我带来麻烦。

一旦我到达函数末尾,系统就会崩溃。我是否遗漏了什么,或者我是否通过使用 vector 犯下了 OpenCV 的一些主要错误?

最佳答案

我在将 Visual Studio 2012(版本 11)与最初仅为 2010(版本 10)构建的 OpenCV2.4.3 一起使用时遇到了这个问题。 我在版本 10 中使用 lib 和 dll。 比起我为 2012 年构建它,现在它可以在没有堆损坏错误的情况下工作。

P.S.:在它之前(当使用 built for version 10 时),我在 opencv 函数中使用之前调整了 vector 的大小。

关于c++ - OpenCV 与 std::vector 不兼容? (_crtIsValidHeapPointer 错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9107003/

相关文章:

.net - 如何从包中设置 "Break on All Exceptions"

c++ - 为什么 cv::mat 的 vector 总是返回第一张图像?

opencv - OpenCV-从RGB到HSV再回到RGB?

c++ - DNA字符串排序函数问题

c++ - 如何编写一个程序来计算这个等式

c++ - std::stringstream 错误?

c++ - exe 可以小于其最大的声明缓冲区吗?

asp.net-mvc - 无法到达 Visual Studio 调试 "This site can'”

python - OpenCV - 检查两个图像是否 100% 相同的最快方法

c++ - 使用资源文件进行 C++ 编译时出错