既定の matlab 関数 medfilt2 は、四角形のマスクを使用します。
みんなありがとう
使用できますordfilt2
。
たとえば、「リング」が次のように定義されている場合:
ring= fspecial('gaussian',21,1)
ring = ring>eps & ring<1e-9
それから:
order=sum(ring(:))/2;
B = ordfilt2(A,order,ring);
A の各要素を、リング領域の非ゼロ要素によって指定された並べ替えられた近傍集合の次数の要素に置き換えます。ここでは、リング内のピクセルの総数の半分になるように「順序」を選択しました。