内存泄漏使用opencvsharp

时间:2012-09-19 06:14:09

标签: c# opencvsharp

所以我正在尝试使用opencvsharp来创建增强现实跟踪器,而我遇到内存泄漏问题。

我正在尝试从相机图像中识别矩形(这是我的标记)我很确定违规代码是

        CvSeq<CvPoint> firstcontour = null;

        List<MarkerRectangle> rectangles = new List<MarkerRectangle>();

        CvMemStorage storage = Cv.CreateMemStorage(0);
        CvMemStorage storagepoly = Cv.CreateMemStorage(0);

        IplImage gsImageContour = Cv.CreateImage(Cv.GetSize(thresholdedImage), thresholdedImage.Depth, thresholdedImage.NChannels);
        //find contours
        Cv.Copy(thresholdedImage, gsImageContour, null);
        int contourCount = Cv.FindContours(gsImageContour, storage, out firstcontour, CvContour.SizeOf,
             ContourRetrieval.CComp, ContourChain.ApproxSimple, Cv.Point(0, 0));

        CvSeq<CvPoint>  polycontour = firstcontour.ApproxPoly(CvContour.SizeOf, storagepoly, ApproxPolyMethod.DP, 4, true);

我很确定违规行是:

        int contourCount = Cv.FindContours(gsImageContour, storage, out firstcontour, CvContour.SizeOf, ContourRetrieval.CComp, ContourChain.ApproxSimple, Cv.Point(0, 0));

和/或

        CvSeq<CvPoint>  polycontour = firstcontour.ApproxPoly(CvContour.SizeOf, storagepoly, ApproxPolyMethod.DP, 4, true);

但是我不确定我可能做错了什么,因为它们没有存储在任何全局变量中,我希望在它们到达方法结束时释放内存。

可能是this bug,在这种情况下我怀疑我缺乏修复它的技术专业知识,因为除了在uni的几个课程之外,我还没有使用非托管代码。然而,我尝试在其他信息下实现它列出的修复程序,但是没有用,所以我想也许这不是我问题的原因。

0 个答案:

没有答案