2011-04-17 111 views
1

象中值滤波器的定义,我可以定义“最大过滤器”作为本地窗口OpenCV的形态扩张滤波器作为最大滤波

例如DST(X,Y)= MAX(3×3局部窗口像素)

但我不能找到在OpenCV中这样的过滤器时,最近的一个是“扩张”功能

然后我使用的“扩张”的缺省配置功能,但结果是不正确的 比较我的蛮力执行的最大过滤器。

我发现,对于3x3的情况下,相当于扩张配置是使用1x1的矩形结构元素,即

dilate(src, dst, getStructuringElement(MORPH_RECT, Size(1,1)))

我的问题是:

  1. 似乎反直觉对我来说,我认为一个结构元素相当于一个本地窗口。但是现在,本地窗口的大小只有1x1像素?

  2. 如果我的最大过滤器的本地窗口扩大(例如5x5,7x7)怎么办?最大过滤器和膨胀过滤器之间是否有任何关系?

+0

这个问题之后,我发现我的逻辑在我的代码错误...膨胀/最大过滤器的定义是相同的 – Bossliaw 2011-06-16 12:43:09

回答

2

Mathematica中的实现例如:

enter image description here

扩张[]也接受一个结构化的内核:

enter image description here

+0

因此,您的案例建议 'Dilation [img,2]!= MaxFilter [img,2]'? – Bossliaw 2011-04-18 18:36:41

+0

@Bossliaw没有。 AFAIK,扩展通常是MaxFilter的泛化,因为你可以指定一个内核 – 2011-04-18 19:06:51