opencv中的findContours带有“System.AccessViolationException”

时间:2013-03-28 02:05:13

标签: opencv image-processing vs2010-express

我试图在Opencv2.4.4中使用带有VS2010express(C ++)的findContours函数,代码如下。     Mat canny_output;     std :: vector>轮廓;

/// Detect edges using canny
Canny( src_gray, canny_output, 100, 200, 3 );
/// Find contours
threshold(canny_output,canny_output,0,255,THRESH_BINARY);

findContours( canny_output, contours, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE );

但程序将始终在系统错误System.AccessViolationException的最后一行触发断点。

任何人都有任何想法?

1 个答案:

答案 0 :(得分:0)

建议:

  1. 确保contoursvector< vector<Point> >
  2. 在Canny操作之后,您可以直接将边缘送到findContour ..为什么要进行阈值处理?阈值为零的情况......跳过该行...因为canny的输出是二进制图像。
  3. 确保cannny_output也是灰色图片。
  4. 编辑:尝试这个..虽然这给了外部轮廓..检查发现是否正在等待...

    findContours(canny_output,contours,CV_RETR_EXTERNAL,CV_CHAIN_APPROX_NONE,Point())