ドキュメンテーション

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

bwareaopen

バイナリ イメージからの小さなオブジェクトの削除

説明

BW2 = bwareaopen(BW,P) は、P ピクセルより少ないすべての連結要素 (オブジェクト) をバイナリ イメージ BW から削除し、別のバイナリ イメージ BW2 を生成します。この操作は、"領域解放" と呼ばれています。

BW2 = bwareaopen(BW,P,conn) は、すべての連結要素を削除します。ここで、conn は必要な連結性を指定します。

すべて折りたたむ

バイナリ イメージを読み取ります。

BW = imread('text.png');

関数 bwareaopen を使用して、ピクセル数が 50 ピクセル未満のオブジェクトを削除します。

BW2 = bwareaopen(BW, 50);

元のイメージの横にモルフォロジー オープニングが行われたイメージを表示します。

imshowpair(BW,BW2,'montage')

入力引数

すべて折りたたむ

バイナリ イメージ。任意の次元の logical 配列または数値配列として指定します。

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

オブジェクト内の最大ピクセル数。非負の整数として指定します。

例: 50

データ型: double

ピクセルの連結性。次の表のいずれかの値を指定します。既定の連結性は 2 次元イメージでは 8、3 次元イメージでは 26 です。

平均

2 次元連結性

4 連結

ピクセルのエッジの部分が接触している場合、ピクセルは連結されます。2 つの隣り合ったピクセルは両方とも "on" の場合に同じオブジェクトの一部であり、水平方向または垂直方向に連結します。

8 連結

ピクセルのエッジまたはコーナーが接触している場合、ピクセルは連結されます。2 つの隣り合ったピクセルは両方とも "on" の場合に同じオブジェクトの一部であり、水平方向、垂直方向または対角方向に連結します。

3 次元連結性

6 連結

面が接触している場合、ピクセルは連結されます。2 つの隣り合ったピクセルは両方とも "on" の場合に同じオブジェクトの一部であり、次のように連結します。

  • 次のいずれかの方向: 奥、手前、左、右、上および下

18 連結

面またはエッジが接触している場合、ピクセルは連結されます。2 つの隣り合ったピクセルは両方とも "on" の場合に同じオブジェクトの一部であり、次のように連結します。

  • 次のいずれかの方向: 奥、手前、左、右、上および下

  • 右下または上の奥など、2 つの方向の組み合わせ

26 連結

面、エッジまたはコーナーが接触している場合、ピクセルは連結されます。2 つの隣り合ったピクセルは両方とも "on" の場合に同じオブジェクトの一部であり、次のように連結します。

  • 次のいずれかの方向: 奥、手前、左、右、上および下

  • 右下または上の奥など、2 つの方向の組み合わせ

  • 右上の奥または左下の奥など、3 つの方向の組み合わせ

高次元の場合、bwareaopen は既定値 conndef(ndims(BW),'maximal') を使用します。

連結性は、01 から成る 3 × 3 × ... × 3 行列を指定し、任意の次元に対してより一般的に定義することもできます。1 の値を持つ要素は、conn の中心要素に対する近傍の位置を定義します。conn は、その中心要素に関して対称でなければなりません。詳細は、カスタム連結性の定義を参照してください。

データ型: double | 論理値

出力引数

すべて折りたたむ

領域解放されたイメージ。BW と同じサイズの logical 配列として返されます。

アルゴリズム

基本的なステップは、次のとおりです。

  1. 連結要素は、以下のように判断します。

    CC = bwconncomp(BW, conn);
  2. 各成分の面積を計算します。

    S = regionprops(CC, 'Area');
  3. 小さいオブジェクトは、以下のように削除します。

    L = labelmatrix(CC);
    BW2 = ismember(L, find([S.Area] >= P));
    

拡張機能

R2006a より前に導入