代码如下
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的时候有局部变量需要析构而出错