1

中央値フィルター (medfilt2) のように機能する円形フィルターを定義するにはどうすればよいですか? [nn] の正方形近傍ではなく、半径 r の円形近傍で中央値を実行します。2d-image でこの操作を実行する必要があります。(もちろん、できれば速く動作する必要があります)。ありがとう

4

1 に答える 1

5

ordfilt2循環ドメインで使用します。例えば、

B = ordfilt2(A, order, domain)

Aの各要素を、ドメイン内のゼロ以外の要素によって指定された、ソートされたネイバーのセットのorder番目の要素に置き換えます。あなたの場合、次のような循環ドメインを作成します

domain=fspecial('disk',10)>0;

これにより、素敵なバイナリディスク(21x21マトリックス)が生成されます。これはおそらくニーズには大きすぎるため、fspecialまたはを使用して必要なサイズに変更できますimresize。次に、中央値は、ドメインのソートされた非ゼロ要素から取得された中央値です。したがって、次のようになります。

B = ordfilt2(A,round(0.5*numel(find(domain)))),domain);
于 2013-03-10T08:57:56.953 に答える