MATLAB學習(1)——ordfilt2


       在MATLAB圖像處理工具箱中提供了二維統計順序濾波函數ordfilt2函數。二維統計順序濾波是中值濾波的推廣,對於給定的n個數值{al ,a2,...,an},將它們按大小順序排列,將處於第k個位置的元素作為圖像濾波輸出,即序號為k的二維統計濾波。ordfilt2函數語法格式為:

句法

B = ordfilt2(A,order,domain)     
%將A中的每個元素替換為由域中非零元素指定的有序鄰居集合中的orderth元素
B
= ordfilt2(A,order,domain,S)
%過濾器A,其中ordfilt2使用對應於域的非零值的S值作為附加偏移量。您可以使用此語法來實現灰度形態學操作,包括灰度擴張和侵蝕。
B
= ordfilt2(___,padopt)
%過濾器A,其中padopt指定ordfilt2如何填充矩陣邊界。

其中,(1)A是輸入矩陣,指定為2-D,實數,非稀疏,數字或邏輯數組。

           (2)order是用於替換目標像素的元素,指定為類double的實數標量整數。

           (3)domain是鄰域,指定為數字或邏輯矩陣,包含1和0。域相當於用於二值圖像操作的結構元素。 1值元素定義了過濾操作的鄰域。下表給出了一些常  見過濾器的例子:

             

              其功能是:對圖像X作順序統計濾波,order為濾波器輸出的順序值,domain為濾波窗口。S是與domain大小相同的矩陣,它是對應domain中非零值位置 的輸出偏置,這在圖形形態學中是很有用的。例如:
B=ordfilt2(X,5,ones(3,3)),相當於3×3的中值濾波
B=ordfilt2(X,1,ones(3,3)),相當於3×3的最小值濾波
B=ordfilt2(X,9,ones(3,3)),相當於3×3的最大值濾波
B=ordfilt2(X,1,[0 1 0;1 0 1;0 1 0]),輸出的是每個像素的東、西、南、北四個方向相鄰像素灰度的最小值。

     (4)S是附加偏移量,指定為與域大小相同的矩陣。

     (5)padopt是填充選項,指定為以下任一值:

Option Description
'zeros'

Pad array boundaries with 0's

(用0填充數組邊界)

'symmetric'

Pad array with mirror refiections of itself

(對稱填充)

Examples

%Read image into workspace and display it.
A = imread('snowflakes.png');
figure
imshow(A)
%Filter the image and display the result.

B = ordfilt2(A,25,true(5));
figure
imshow(B)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM