Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

bwlabel

2 次元バイナリ イメージ内の連結要素をラベル付け

説明

L= bwlabel(BW)は、BWで検出された 8 連結オブジェクトのラベルを含むラベル行列Lを返します。

L= bwlabel(BW,conn)はラベル行列を返します。ここで,connは連結性を指定します。

[L,n] = bwlabel(___)は、BWで検出された連結オブジェクトの数nも返します。

すべて折りたたむ

小さいバイナリ イメージを作成します。

BW = logical ([1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 0]);

4 連結オブジェクトを使用して、ラベル行列を作成します。

L = bwlabel(BW,4)
L =8×81 1 1 0 0 0 0 0 1 1 1 0 2 2 0 0 1 1 1 0 2 2 0 0 1 1 1 0 0 0 3 0 1 1 1 0 0 0 3 0 1 1 1 0 0 0 3 0 1 1 1 0 0 3 3 0 1 1 1 0 0 0 0 0

findコマンドを使用して、"2" というラベルが付いたオブジェクトの行座標と列座標を取得します。

[r, c] = find(L==2); rc = [r c]
rc =4×22 5 3 5 2 6 3 6

入力引数

すべて折りたたむ

バイナリ イメージ。2 次元数値行列または 2 次元 logical 行列として指定します。数値入力の場合、非ゼロのピクセルは1(true) であると見なされます。

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

ピクセルの連結性。次のいずれかの値を指定します。

平均

2 次元連結性

4 連結

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

8 連結

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

データ型:double|logical

出力引数

すべて折りたたむ

連続領域のラベル行列。BWと同じサイズの非負の整数から成る行列として返されます。0とラベル付けされたピクセルは背景です。1とラベル付けされたピクセルは 1 番目のオブジェクトを構成し、2とラベル付けされたピクセルは 2 番目のオブジェクトを構成する、というように、次々にオブジェクトを構成します。

データ型:double

BWの連結オブジェクトの数。非負の整数として返されます。

データ型:double

ヒント

  • 関数bwlabelbwlabelnbwconncompはすべて、バイナリ イメージの連結要素を計算します。bwconncompは、bwlabelbwlabelnを置き換えて使用できます。メモリ使用量が大幅に削減され、他の関数より高速な場合もあります。

    入力次元 出力形式 メモリの使用 連結性
    bwlabel 2 次元 倍精度ラベル行列 4 または 8
    bwlabeln N 次元 倍精度ラベル行列 任意
    bwconncomp N 次元 CC 構造体 任意
  • MATLAB®関数findbwlabelと組み合わせて使用して、特定のオブジェクトを構成するピクセルのインデックスのベクトルを返すことができます。たとえば、オブジェクト 2 内のピクセルの座標を返すには、次のように入力します。

    [r,c] = find(bwlabel(BW)==2)

    出力行列は、疑似色のインデックス付きイメージとして表示できます。各オブジェクトは別の色で表示されるため、元のイメージ内にあるときと比べて区別するのが簡単になります。詳細については、label2rgbを参照してください。

  • 既定の連結性を持つregionpropsを使用してバイナリ イメージから特徴を抽出するには、regionprops(BW)コマンドを使用してBWを直接regionpropsに渡します。

  • 関数bwlabelは、データ型がlogicaluint8およびsingleの場合、ハードウェアの最適化を利用してより高速に実行できます。ハードウェア最適化では、markermaskが 2 次元イメージで、connが 4 または 8 である必要があります。

アルゴリズム

bwlabelは、参考文献[1]pp. 40-48 の説明にある一般的な処理を使用します。

  1. 入力イメージは、実行長によりエンコードされます。

  2. 実行をスキャンし、予備ラベルを割り当て、ラベル等価を局所的な等価テーブルに記録します。

  3. 等価クラスを解決します。

  4. 対応済みの等価クラスに基づいて、実行の再ラベル付けを行います。

参照

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

拡張機能

バージョン履歴

R2006a より前に導入