OpenCvSharp:CvtSeqToArray崩溃

时间:2014-02-12 13:23:54

标签: opencvsharp

我正在搜索轮廓,至少找到一个,正如我在调试器中看到的那样。 当我尝试将序列转换为点数组时,会抛出StackOverflowException(这就是我在这里的原因:-)。

我确定原因是缓冲区的分配错误,我对我在C,C ++中找到的示例有点困惑,但在C#中却没有。 OpenCvSharp使用以前从未使用过的泛型。

平台:x86上的Windows 7,Sharpdevelop 4.2.2

以下是代码段:

OpenCvSharp.CvMemStorage    allContours = new OpenCvSharp.CvMemStorage();
OpenCvSharp.CvSeq<OpenCvSharp.CvPoint> contour = null;
OpenCvSharp.CvPoint[]   border;

  i = OpenCvSharp.Cv.FindContours (image[EDGE], allContours, out contour,
    OpenCvSharp.CvContour.SizeOf, OpenCvSharp.ContourRetrieval.List,
    OpenCvSharp.ContourChain.ApproxNone,
    OpenCvSharp.Cv.Point(0,0));
  if (i!=1)
  { Forms.MessageBox.Show( i.ToString() + " instead of 1 contours found", "Info");
    return;
  }
  border = new OpenCvSharp.CvPoint [contour.Total];
  OpenCvSharp.Cv.CvtSeqToArray<OpenCvSharp.CvPoint> (contour, out border);

这是程序崩溃的最后一行。

0 个答案:

没有答案