必威电竞|足球世界杯竞猜平台

中值濾波器
來源:互聯網

中值濾波是一種非線性數字濾波器技術,經常用于去除圖像或者其它信號中的噪聲。這個設計思想就是檢查輸入信號中的采樣并判斷它是否代表了信號,使用奇數個采樣組成的觀察窗實現這項功能。觀察窗口中的數值進行排序,位于觀察窗中間的中值作為輸出。然后,丟棄最早的值,取得新的采樣,重復上面的計算過程。

技術介紹

在圖像處理中,在進行如邊緣檢測這樣的進一步處理之前,通常需要首先進行一定程度的降噪。中值濾波是圖像處理中的一個常用步驟,它對于斑點噪聲(speckle noise)和椒鹽噪聲(salt-and-pepper noise)來說尤其有用。保存邊緣的特性使它在不希望出現邊緣模糊的場合也很有用。

例子

為了演示中值濾波器的工作過程,我們給下面的數組加上觀察窗 3 ,重復邊界的數值:

于是

其中 y 是 x 的中值濾波輸出。

算法描述

中值濾波器的主要思想是通過入口來遍歷信號入口,用鄰居入口的中值替換每個入口。鄰居的模式被稱為“窗口”,它通過入口滑動,覆蓋整個信號。對于一維信號,最明顯的窗口只是前后幾項,而2D(或更高維)信號(如圖像)則可能有更復雜的窗口模式(如“盒子”或“十字”模式)。請注意,如果窗口中有奇數個條目,則中位數很容易定義:在窗口中的所有條目都按數字排序之后,這只是中間值。對于偶數的條目,有不止一個可能的中位數。

邊界問題

請注意,在上面的例子中,因為第一個值之前沒有條目,所以第一個值和最后一個值一樣重復,以獲得足夠的條目來填充窗口。這是在信號邊界處理丟失的窗口條目的一種方法,但是還有其他的方案具有不同的屬性,在特定情況下可能是優選的:

二維中值過濾偽代碼

簡單的二維中值濾波算法代碼可能如下所示:

請注意,這個算法:

算法實現問題

通常,大部分的計算工作和時間花費在計算每個窗口的中值上。由于濾波器必須處理信號中的每個條目,對于像圖像這樣的大信號,這個中值計算的效率是確定算法運行速度的關鍵因素。上面描述的天真的實現將窗口中的每個條目進行排序以找到中間值;然而,由于只需要列表中的中間值,所以選擇算法可以更有效。此外,某些類型的信號(通常是圖像的情況)使用整數表示:在這些情況下,直方圖因為從窗口到窗口更新直方圖是簡單的,并且找到直方圖的中值并不特別繁瑣,所以中值可以更有效得多。

邊緣保存屬性

中值濾波是一種平滑技術,與線性高斯濾波一樣。所有的平滑技術都能有效去除信號光滑區域或平滑區域的噪聲,但對邊緣產生不利影響。通常,在減少信號中的噪聲的同時,保持邊緣是重要的。例如,邊緣對于圖像的視覺外觀是至關重要的。對于(高斯)噪聲的小至中等水平,中值濾波器在消除噪聲方面明顯好于高斯模糊,同時為給定的固定窗口大小保留邊緣。然而,對于高噪聲,其性能并不比高斯模糊好,而對于散斑噪聲和椒鹽噪聲(沖動噪音),這是特別有效的。因此,中值濾波在數字圖像處理中被廣泛使用。

在GIMP中進行中值濾波

在GIMP2.8.2中操作如下:

濾鏡->增強->去除斑點。

不要勾選適應和遞歸,設置黑色水平為-1,白色水平為256。根據需要調節半徑。半徑越大,細節越少。

參考資料 >

生活家百科家居網