关于c ++:OpenCV findContours导致Debug Assertion在返回时失败

OpenCV findContours causes Debug Assertion Failed at return

我正在使用Opencv 2.4.8在Visual Studio 2013上编程。这是我的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
#define _CRT_SECURE_NO_WARNINGS

#include <cv.h>
#include <highgui.h>

int main(int argc, char* argv[])
{
    cv::Mat image = cv::imread(argv[1], 0);
    image = image > 100;
    std::vector<std::vector<cv::Point> > contours;
    cv::findContours(image, contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE);
    return 0;
}

在发布模式下一切都正常,我不明白为什么它在调试模式下不能正常工作。它导致调试断言在return 0;失败。

(Expression : _pFirstBlock == pHead).

我想轮廓有点不对。

非常感谢您的帮助。


在属性下>代码生成>运行时:如果MSVC运行库被设置为多线程调试DLL(/MDD),那么这是没有问题的(它运行良好)。

如果msvc运行时库设置为多线程调试(/mtd),则它将引发此错误,可以使用以下说明修复此错误。