代码如下
int FindArea(Mat MatIn,Mat &MatResult)
{
//初始化
vector<vector<Point> > contours;
vector<Vec4i> hierarchy;
//寻找轮廓
findContours(MatIn, contours, hierarchy, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE);
//筛选区域
for (int i = 0;i < contours.size();i++)
{
double dArea = contourArea(contours[i]);
if (dArea >= 20)
{
drawContours(MatResult, contours, i, 255, CV_FILLED, 8, hierarchy);
}
}
//imshow("2", MatResult);
//waitKey(0);
return 0;
}
这个函数在Debug下最后return会报错,但是release下正常,怎么回事啊
解决方案
20
debug模式有些异常是什么被捕获并弹出提示..
但是在release下就没有这些了.
说明程序有bug.
你这种还好找错误, 最怕的是debug无错, release有错, 这样调试起才麻烦, 原因是release会做代码优化.
但是在release下就没有这些了.
说明程序有bug.
你这种还好找错误, 最怕的是debug无错, release有错, 这样调试起才麻烦, 原因是release会做代码优化.
40
可能是你越界写入了,破坏了在变量周围的debug调试信息,导致return的时候有局部变量需要析构而出错