【发布时间】:2012-02-19 15:30:44
【问题描述】:
我是opencv的新手。我应该为涉及使用 2D 低通高斯滤波器的项目执行操作。我用的OpenCV是2.2的,里面有两个函数:filter2d()和GaussianBlur()。
做同样的工作?让我解释一下,如果 filter2d () 步进一个用 () 创建的高斯内核 getGaussiankernel 并应用过滤器并直接用 GaussianBlur () 运行它,我会得到相同的结果吗? 很明显,我会为两个核函数采用相同的值。
【问题讨论】:
-
试试看 - 执行这两个操作并保存到两个不同的文件,看看文件是否相同。
-
no 不要给出相同的结果。因此,此时应用 gaussianblur (src, dst, cvSixe (5.5), 1,1) 以产生具有大小为 5 的滤波器的 2D 高斯滤波器是错误的吗?或者它正确适用一次 gaussianblur (src, dst, cvSixe (5.5), 1) 和 gaussianblur (dst, dst2, cvSixe (5.5), NULL,1) ?
-
恐怕我不熟悉 OpenCV 的工作原理,所以我无法回答您的其他问题,抱歉。
-
理论上高斯过滤器是可分离的,然后首先在 x 方向上应用,然后在 y 方向上等于应用整个 2D 过滤器。
标签: c++ opencv filtering gaussian