2011-04-17 112 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