我在转义范围后收到损坏的堆错误消息。 debug_heap.cpp 中的调试断言在 _CrtlsValidHeapPointer(block)
#include "opencv2\opencv.hpp"
#include "opencv2\nonfree\features2d.hpp"
using namespace cv;
int main(int argc, char* argv[]) {
Mat img = imread(argv[1]);
SurfFeatureDetector detector(400);
vector<KeyPoint> keypoints;
detector.detect(img, keypoints);
return 0;
}
编辑 固定的。问题在于链接。我使用了 visual studio 2015 和 opencv 2.49 x86 vc10。 vc10 适用于 visual studio 2010。在 visual studio 2010 中运行一些程序并且工作正常。
最佳答案
I get corrupt heap error message after escaping scope.
如果您确定错误恰好在 出现,那么这不是您的代码中的问题。只是您没有正确链接 OpenCV。 x64 和 x86 之间不匹配或 C++ 运行时库之间不匹配。因此,只需确保一切都连接良好即可。
关于c++ - 堆已损坏 opencv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35170610/