我目前正在研究计算机视觉并尝试使用 Hough-Transform 来查找一些线条。它本身的操作正在运行,但是即使是最小的示例代码也会产生释放错误。
#include <iostream>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main(int argc, char* argv[])
{
int size[] = {100, 100};
Mat img(1, size, CV_8U);
img = cv::Scalar(255);
vector<Vec4i> lines;
HoughLinesP(img, lines, 1, CV_PI/180, 100, 30, 5);
cout << lines.size() << endl;
}
请注意,如果我将行转换为 * 行,在堆上创建向量并且不删除它,则一切正常。我看不出代码有任何问题,它直接取自 OpenCV 示例。
异常发生在
msvcr110d.dll!_CrtIsValidHeapPointer(const void * pUserData) Line 2036 C++
我从 VS 2012 64 位版本编译并运行它,可执行文件也是 64 位的。操作系统是 Windows 7、64 位