C ++奇怪的访问冲突Visual Studio 2015 RC

时间:2015-07-06 01:36:57

标签: c++ visual-studio opencv visual-c++ visual-studio-2015

我真的对这个错误感到困惑,我不知道这是一个C ++问题,OpenCV,IDE问题还是缺乏知识。我正在使用VS2015 RC,OpenCV 2.4.10。 这是我的代码

void cluster(cv::Mat &im)
{
cv::Mat thresholded = im.clone();
threshold(im, thresholded, 254, 255, CV_THRESH_BINARY);

// Setup SimpleBlobDetector parameters.
SimpleBlobDetector::Params params;
params.filterByCircularity = false;
params.filterByInertia = false;
params.filterByColor = false;

// Change thresholds
params.minThreshold = 200;
params.maxThreshold = 250;

// Filter by Area.
params.filterByArea = true;
params.minArea = 50;

// Filter by Convexity
params.filterByConvexity = true;
params.minConvexity = 0;
params.maxConvexity = 1;

// Set up the detector with default parameters.
SimpleBlobDetector detector(params);


// Detect blobs.
std::vector<KeyPoint> keypoints;

detector.detect(thresholded, keypoints);
}

当我运行此代码时,每一行都执行得很好,但在函数结束时我得到以下错误

Exception thrown at 0x00007FFAC07A51EA (ntdll.dll) in OP4.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF.
Unhandled exception at 0x00007FFAC07A51EA (ntdll.dll) in OP4.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF.

如果我使用默认构造函数初始化SimpleBlobDetector,则不会出现此问题。我检查了检测功能的返回,它返回了正确的值,我甚至绘制了它。但是当函数结束时会出现错误。我也试过增加堆栈大小。我也尝试在main函数中使用它,它最终会导致访问冲突!!

请帮忙!

1 个答案:

答案 0 :(得分:1)

我认为它可能是VS2015 RC的一个问题,我在VS2010上使用完全相同的代码创建了一个新项目,它就像魅力一样!