matlab-線性空間濾波(空間卷積)一

鄰域處理:(1)選擇中心點(x,y);(2)僅對預定義的圍繞點(x,y)的鄰域內的像素執行運算;(3)令運算結果為該點處鄰域處理的響應;(4)對圖像上的每一點重複上述處理。移動中心點會產生新的鄰域,每個鄰域對應輸入圖像上的一個像素。用來區別這種處理的兩個術語叫鄰域處理和空間濾波。若對鄰域中像素的計算為線性的,則運算稱為線性空間濾波(空間卷積)。

這裡關注的線性運算包括將鄰域中的每個像素與相應的係數相乘,然後對結果求和,從而得到點(x,y)處的響應。

若鄰域大小為m*n,則需要mn個係數。這些係數被排列為矩陣,將這稱為濾波器,濾波模板(卷積濾波,卷積模板)。

線性空間濾波機理,放大的圖顯示了大小為3*3的濾波模板以及模板正下方的相應圖像鄰域

Advertisements


上圖這個過程是在圖像f中逐點移動濾波模板w的中心點。在每個點(x,y)處,濾波器在該點處的響應是由濾波模板限定的相應鄰域像素與濾波器係數的乘積結果的累加和。對於大小為m*n的模板,我們假定典型的m=2a+1且n=2b+1,其中的a和b為非負整數。所有假設都是基於模板的大小均應為奇數的原則,有意義模板的最小尺寸為3*3。由於處理奇數大小的模板會更加直觀,因為他們都有明確的中心點。

在執行線性空間濾波時,我們必須分清相關和卷積。相關是指模板w按照上圖的方式進行圖像數組f的處理。原理上卷積是相同的過程,只不過再w通過f之前先將他旋轉180度。下圖進行解釋。

上圖a顯示了一維函數f和模板w。假設f的原點定位最左側的點。為執行兩個函數的相關,可以移動w使其最右側的點與f的原點重合,如b。注意,這兩個函數之間有一些點未重疊。為處理這種問題,最普遍的方法就是在f中填充足夠多的0,以保證在w通過f的整個過程中,始終存在對應的點,如c。

Advertisements

執行相關操作。相關的第一個值是在c所示的位置上兩個函數乘積的累加和。此時乘積的和為0。下一步,我們將w向右移動一個位置並重複上述過程,如d。乘積的累加和認為0。經過四次移動后,如e所示,我們首次得到了相關的非零值,就是2。照這種方式下去,知道w全部通過f,最終的幾何圖如f所示,我們得到了g所示結果。這組只即和w又與f相關。假設我們填充了w,用填充過的w最左側的值對準f最右側的元素,用剛才描述的方式執行相關,結果將會旋轉180度。所以在相關中,函數的順序也有關係。

g中所示的相關中,full表示使用了經過充零后的圖像。same表示開始位置位於與f的原點對準的模板的中心(w中標記為3的點),並使用了經過充零后的圖像,最後的計算是使f的最後一個點與模板的中心點對準。

為執行卷積,可將w旋轉180度,時期最右側的點與f的原點重疊,如j。然後,我們重複相關使用的滑動、計算過程,如k到n。

上圖函數f是離散單位衝擊函數,該函數在每個位置的值是1,在其他位置的值為0。從圖o、p結果可以明顯看出,衝擊函數卷積只是在衝激位置複製出w。這個複製性質(稱為篩選)是線性系統理論中的基本概念,也是其中一個函數總會在卷積中旋轉180度的原因。請注意,不同於相關,交換函數的順序會產生相同的卷積結果。如果被移動的函數是對稱的,很明顯,卷積和相關會產生相同的結果。

Advertisements

你可能會喜歡