emgu FindContours在调试版本中失败

时间:2015-01-24 18:57:12

标签: c# wpf opencv emgucv

我有一些在调试和发布版本中都有效的Emgu代码。在某个地方,它会停止工作,但我还在深入补充其他东西,所以我当时没有追求它。

当我最终尝试修复它时,我发现版本构建有效,但不是调试构建。在它工作的时间和之间,我没有更改任何引用或引用的DLL。我花了一些时间调查一下,因为我读过某个地方,开放的CV在某处调试vs版本时有些麻烦,但从未找到任何东西。

我刚应用了最后一个版本的Emgu,同样存在问题;在发布时工作得很完美,在调试中根本没有。

相关的代码段是;

 var filteredFrame =
            channels[0].SmoothGaussian(VisionData.SmoothGaussians)
                .Erode(VisionData.Erodes)
                .Dilate(VisionData.Dialates);

        using (MemStorage stor = new MemStorage())
            for (
                Contour<System.Drawing.Point> contour =
                    filteredFrame.FindContours(Emgu.CV.CvEnum.CHAIN_APPROX_METHOD.CV_CHAIN_APPROX_SIMPLE,
                        Emgu.CV.CvEnum.RETR_TYPE.CV_RETR_EXTERNAL, stor);
                contour != null;
                contour = contour.HNext)
                if ((contour.Area > (VisionData.ContourMinArea * VisionData.ContourMinArea))
                    && (contour.Area < (VisionData.ContourMaxArea * VisionData.ContourMaxArea)))
                    CurrentFrame.Draw(contour.GetMinAreaRect(), RectBrush, 2);

        d.InvokeAsync(() =>
        {
            DataModel.CameraImageSource = Emgu.CV.WPF.BitmapSourceConvert.ToBitmapSource(CurrentFrame);
            DataModel.FilteredImageSource = Emgu.CV.WPF.BitmapSourceConvert.ToBitmapSource(filteredFrame);                                
        });

输入过滤帧(图像)在调试和发布中看起来都相同。

0 个答案:

没有答案