4

我是opencv的新手。我应该为涉及使用 2D 低通高斯滤波器的项目执行操作。我使用的OpenCV是2.2,里面有两个函数:filter2d()和GaussianBlur()。

执行相同的工作?让我解释一下,如果 filter2d () 步进一个用 () 创建的高斯内核 getGaussiankernel 并应用过滤器并直接用 GaussianBlur () 运行它,我会得到相同的结果吗?很明显,我会为两个核函数采用相同的值。

4

2 回答 2

3

GaussianBlur()只是具有相同内核值的更复杂的设置 filter2d() 的快捷方式。它以相同的速度执行相同的操作,调用相同的核心函数。

于 2012-01-29T10:46:30.150 回答
0

您可能会看到不同之处在于 filter2D 执行的是互相关而不是卷积操作。X 相关和卷积在使用对称核/滤波器时给出相同的结果。为了使用内核执行卷积,您需要翻转它并将锚点设置在内核的中间。请参阅文档: http: //opencv.willowgarage.com/documentation/cpp/image_filtering.html#cv-filter2d

我不确定从那里产生的差异,但我需要在我的应用程序中使用卷积,这就是我实现它的方式,它按预期工作。

于 2012-01-26T23:48:23.443 回答