ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

nlfilter

一般的なスライディング近傍演算

構文

B = nlfilter(A, [m n], fun)
B = nlfilter(A, 'indexed',...)

説明

B = nlfilter(A, [m n], fun) は、関数 fun をグレースケール イメージ Amn 列の各スライディング ブロックに適用します。fun は、入力として mn 列の行列を受け入れ、スカラーの結果を返す関数です。

c = fun(x)

fun は関数ハンドルでなければなりません。

c は、mn 列のブロック x の中央ピクセルの出力値です。nlfilter は、A のピクセルごとに fun を呼び出します。nlfilter は必要に応じて、エッジにある mn 列のブロックをゼロ パディングします。

B = nlfilter(A, 'indexed',...) は、A をインデックス付きのイメージとして処理します。Asingle クラスまたは double クラスの場合は 1 をパディングし、Alogicaluint8 または uint16 のクラス場合は 0 をパディングします。

クラス サポート

入力イメージ A は、fun によってサポートされている任意のクラスとなります。B のクラスは fun からの出力のクラスに依存します。A がグレースケールの場合、任意の数値型または logical にすることができます。A にインデックスが付いている場合は、logicaluint8uint16single または double を使用できます。

すべて折りたたむ

この例では、nlfilter を使用してメディアン フィルターをイメージに適用する方法を説明します。この例では、3 行 3 列の近傍で medfilt2 を呼び出したのと同じ結果が得られます。

A = imread('cameraman.tif'); 
A = im2double(A);
fun = @(x) median(x(:)); 
B = nlfilter(A,[3 3],fun); 
imshow(A), figure, imshow(B)

ヒント

nlfilter で大きなイメージを処理するには、時間がかかることがあります。関数 colfilt を使用すると、同じ演算をより高速に行うことができる場合があります。

R2006a より前に導入

この情報は役に立ちましたか?