ドキュメンテーション

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

ordfilt2

2 次元の次数統計フィルター処理

構文

B = ordfilt2(A,order,domain)
B = ordfilt2(A,order,domain,S)
B = ordfilt2(___,padopt)

説明

B = ordfilt2(A,order,domain) は、A の各要素を、domain の非ゼロの要素で指定される近傍集合を並べ替えたときの order 番目の要素と置き換えます。

B = ordfilt2(A,order,domain,S)A をフィルター処理します。ここで、ordfilt2domain の非ゼロ値に対応する S の値を加算オフセットとして使用します。この構文を使用して、グレースケールの膨張と収縮など、グレースケールのモルフォロジー演算を実装できます。

B = ordfilt2(___,padopt)A をフィルター処理します。ここで、padoptordfilt2 による行列の境界のパディング方法を指定します。

コード生成 サポート: あり。

MATLAB Function ブロック サポート: あり。

すべて折りたたむ

イメージをワークスペースに読み取って表示します。

A = imread('snowflakes.png');
figure
imshow(A)

イメージをフィルター処理して、結果を表示します。

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

入力引数

すべて折りたたむ

入力行列。2 次元、実数、非スパースの数値配列または論理配列として指定します。

例: A = imread('snowflakes.png');

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

ターゲット ピクセルを置き換えるための要素。double クラスの実数スカラー整数として指定します。

例: B = ordfilt2(A,25,true(5));

データ型: double

近傍。10 を格納した数値行列または論理行列として指定します。domain はバイナリ イメージ演算で使用する構造化要素と等価です。1 の値をもつ要素はフィルター処理の近傍を定義します。次の表に、いくつかの一般的なフィルターの例を示します。

フィルター処理のタイプMATLAB コード近傍
メディアン フィルターB = ordfilt2(A,5,ones(3,3))
最小値フィルターB = ordfilt2(A,1,ones(3,3))
最大値フィルターB = ordfilt2(A,9,ones(3,3))
北近傍、東近傍、南近傍、西近傍の最小値B = ordfilt2(A,1,[0 1 0; 1 0 1; 0 1 0])

例: B = ordfilt2(A,25,true(5));

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

加算オフセット。domain と同じサイズの行列として指定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

パディング オプション。以下のいずれかの値に指定します。

オプション説明
'zeros'配列の境界を 0 でパディングします。
'symmetric'

配列自体の鏡像で配列をパディングします。

データ型: char

出力引数

すべて折りたたむ

出力行列。入力イメージ A と同じクラスの 2 次元配列として返されます。

詳細

すべて折りたたむ

コード生成

この関数では MATLAB® Coder™ を使用した C コードの生成がサポートされています。汎用の MATLAB Host Computer ターゲット プラットフォームを選択した場合、プリコンパイルされたプラットフォーム固有の共有ライブラリを使用するコードが、この関数によって生成されます。共有ライブラリを使用するとパフォーマンスの最適化は維持されますが、コードを生成できるターゲット プラットフォームが限定されます。詳細は、「Image Processing Toolbox のコード生成について」を参照してください。

コードを生成する際、引数 padopt にはコンパイル時の定数を指定しなければなりません。

MATLAB Function ブロック

この関数は Simulink の MATLAB Function ブロックで使用できます。

ヒント

  • ゼロ値要素を含まない大きな領域行列を扱う際、A が整数データ形式 (uint8int8uint16int16) の場合は、ordfilt2 で高いパフォーマンスが得られます。uint8int8 の速度のゲインは、16 ビット データ型より大きくなります。8 ビット データ形式の場合、領域行列には 7 行以上の行が含まれていなければなりません。16 ビット データ形式の場合、領域行列には 3 行以上の行と 520 以上の要素が含まれていなければなりません。

参照

[1] Haralick, Robert M., and Linda G. Shapiro, Computer and Robot Vision, Volume I, Addison-Wesley, 1992.

[2] Huang, T.S., G.J.Yang, and G.Y.Tang. "A fast two-dimensional median filtering algorithm.", IEEE transactions on Acoustics, Speech and Signal Processing, Vol ASSP 27, No. 1, February 1979

参考

R2006a より前に導入

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