メインコンテンツ

labelmatrix

連結要素内のオブジェクトからラベル行列を作成する

説明

ラベル行列は、バイナリ イメージ内のオブジェクトまたは連結要素に一意の整数値を割り当てます。ラベル行列を使用して、個々のオブジェクトまたは連結要素を可視化します。

L = labelmatrix(CC) は、連結要素の構造体 CC からラベル行列 L を作成します。

すべて折りたたむ

バイナリ イメージをワークスペースに読み取ります。イメージを表示します。

BW = imread('text.png');
imshow(BW)

Figure contains an axes object. The hidden axes object contains an object of type image.

bwconncomp を使用して連結要素を計算します。

CC = bwconncomp(BW);

labelmatrix を使用してラベル行列を作成します。各ラベルに一意の数値インデックスがあります。

L = labelmatrix(CC);

ラベル行列の最大値を求めます。この値は検出されたオブジェクト数を示しており、この場合は 88 です。

numObjects = max(L(:))
numObjects = uint8

88

ラベル行列をイメージとして表示します。最大のラベル値は uint8 データ型の最大値よりもはるかに小さいので、イメージの表示範囲を拡大して、ラベルを区別しやすくします。

imshow(L,[])

Figure contains an axes object. The hidden axes object contains an object of type image.

ラベル値が小さいと、ラベル付けされたオブジェクトを確認するのが困難になります。また、ラベル値が近いと、オブジェクトを識別するのが困難になります。異なる連結要素を識別しやすくするため、label2rgb を使用してラベル行列を RGB イメージとして表示し、ラベルの色の順序をシャッフルします。

imshow(label2rgb(L,'jet','k','shuffle'));

Figure contains an axes object. The hidden axes object contains an object of type image.

入力引数

すべて折りたたむ

連結要素。4 つのフィールドを持つ構造体として指定します。関数 bwconncomp または bwpropfilt を使用することで、連結要素の構造体を取得できます。

フィールド説明
Connectivity連結要素 (オブジェクト) の連結性
ImageSizeバイナリ イメージのサイズ
NumObjectsバイナリ イメージ内の連結要素 (オブジェクト) 数
PixelIdxList1 行 NumObjects 列の cell 配列。ここで、cell 配列の k 番目の要素は k 番目のオブジェクトのピクセルの線形インデックスを含むベクトルです。

出力引数

すべて折りたたむ

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

L のサイズは CC.ImageSize フィールドの値によって決まります。L のクラスは連続領域の数によって異なります。表に示すように、labelmatrix はオブジェクト数 CC.NumObjects を表せる最小のデータ型を使用します。

データ型範囲
uint8

CC.NumObjects ≤ 255

uint16

256 ≤ CC.NumObjects ≤ 65535

uint32

65536 ≤ CC.NumObjects ≤ 232 – 1

double

CC.NumObjects ≥ 232

データ型: double | uint8 | uint16 | uint32

バージョン履歴

R2009a で導入