【问题标题】:Emgu CV "Emgu.CV.Util.CvException" when using GaussianBlur with size>3Emgu CV“Emgu.CV.Util.CvException”在使用大小>3的GaussianBlur时
【发布时间】:2017-01-06 09:21:04
【问题描述】:

在使用 Emgu CV 的高斯模糊功能时,我遇到了一个非常奇怪的问题。当我使用 1-3 的内核大小时,模糊图像效果很好,但是当我使用更大的大小时,我的应用程序退出并显示以下消息:

Exception thrown: 'Emgu.CV.Util.CvException' in Emgu.CV.World.dll

我在 Visual Studio 中工作,它甚至没有给我标准的异常弹出窗口。它只是退出并将我扔回编辑器。

这是我尝试过的代码:

CvInvoke.GaussianBlur(image, image, new Size(4, 4), 0, 0);

image._SmoothGaussian(4);

两个例子给出了相同的结果。

【问题讨论】:

    标签: c# opencv emgucv


    【解决方案1】:

    http://www.emgu.com/wiki/files/3.0.0/document/html/4d4fa4cc-0d74-ab37-10ee-2189d35beb81.htm

    如果您查看文档,您可以查看大小是否必须为奇数。 “4”是偶数。

    例如: CvInvoke.GaussianBlur(input, outputGaussian, new System.Drawing.Size(15, 15), 3);

    【讨论】:

      【解决方案2】:

      简单的回答是,这个方法不能使用偶数,只能使用奇数和正数(1,3,5.....等),这是由原始 OpenCV libraries 定义的。

      该方法需要的参数如下:

      • src – 输入图像;
      • dst – 输出图像的大小和类型与 来源。
      • ksize – 高斯核大小。 ksize.width 和 ksize.height 可以不同,但​​它们都必须是正数和奇数。或者,它们可以是 零,然后根据 sigma* 计算它们。
      • sigmaX – X 方向的高斯核标准差
      • sigmaY – Y 方向的高斯核标准差。如果两个 sigma 均为零,则根据 ksize.width 和 ksize.height 计算它们
      • borderType – 像素外推 方法

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-04
        • 1970-01-01
        • 2020-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多