OpenCV findContours导致Debug Assertion在返回时失败

时间:2014-02-16 10:06:29

标签: c++ debugging opencv

我使用OpenCV v 2.4.8在Visual Studio 2013上进行编程。 这是我的代码

#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;

失败
  

(表达式:_pFirstBlock == pHead)。

我认为轮廓有问题。

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

属性&gt; C ++&gt;代码生成&gt;运行时库:
如果MSVC运行时库设置为多线程调试DLL(/ MDd),那么这没问题(它工作正常)。

如果MSVC运行时库设置为多线程调试(/ MTd),则会抛出此错误,可以使用以下说明修复此错误。