IPT中常用於生成非線性空間濾波的一個工具是函數ordfilt2,它可以生成統計排序( order-statistic )濾波器(也稱為排序濾波器,rank filter )。
它們都是非線性空間濾波器,其響應基於對圖像鄰域中所包含的像素進行排序,然後使用排序結果確定的值來替代鄰域中的中心像素的值。本部分的重點在於由函數ordfilt2生成的非線性濾波器。
函數ordfilt2的語法為
g = ordfilt2(f, order, domain)
數字圖像處理中最著名的統計排序濾波器是中值濾波器,它對應的是第50個百分位。我們可以使用MATLAB函數ordfi lt2來創建一個中值濾波器:
g = ordfilt2(f,median(1 :m*n) , ones(m, n) )
其中median(1:m* n)簡單地計算排序序列1, 2, . mn的中值。函數median的通用語法為
v=median (A, dim)
其中,v是向量,它的元素是A浩著維教dim的中值。例如,若dim-1,則v的每個元素就都是矩陣A中沿相應列的元素的中值。工具箱提供了一個二維中值濾波函數:
g=medfilt2 (f,[m n], padopt)
數組[m n]定義了一個大小為mxnf的鄰域,中值就在該鄰域上計算,面paopr指定了二個可能的邊界填充選項之一:,zeros' (默認值);,symmettrie,此地f按照鏡像反射方式對稱地沿其邊界擴展;,indexed',若f是double;類圖像,則以1來填充圖像,否則以0來填充圖像。
該函數的默認形式為:
g=medfilt2 (f)
中值濾波是降低圖像中椒鹽噪聲的一種有用工具。
如圖是一塊工業電路板在自動檢測期間所拍攝的X射線圖像f。
(圖1)
下圖是被椒鹽噪聲汙染的同一幅圖像,圖像中黑點和白點出現的概率為0.2.這幅圖像是利用函數imnoise生成的:
fn=imnoise(f,’salt & pepper』, 0.2);
(圖2)
下圖是對該帶噪圖像進行中值濾波處理後的結果,使用語句:
(圖3)
考慮圖2中的噪音水平,中值濾波採用默認設置很好地實現了降噪。但要注意圍繞圖像邊界的黑色汙點,這些黑色汙點是由圍繞圖像的黑點引起的(回憶可知默認使用0來對邊界進行填充)。使用『symmetric』選項可降低這種效應:
gms=medfilt2(fn,’symmetric』);
(圖4)
上圖結果與圖2所示結果相近,但黑色邊框效應已不再那麼明顯。
這部分的知識比較繁雜冗長,由於篇幅有限,我們今天講的只是基礎的部分,後面還會講到的,這裡只需要了解一下,知道這些函數的淵源就可以了。