メインコンテンツ

labeloverlay

2 次元イメージ上のラベル行列領域の重ね合わせ

説明

B = labeloverlay(A,L) は、入力イメージ A を、ラベル行列 L 内の非ゼロ ラベルごとに異なる色で融合します。関数 labeloverlay は、背景ピクセルを色で融合しません。

B = labeloverlay(A,BW) は、入力イメージに対して、マスク BWtrue となる場所を 1 つの色で融合します。関数 labeloverlay は、背景ピクセル (false のラベル付き) を色で融合しません。

B = labeloverlay(A,C) は、入力イメージを、categorical 行列 C 内のラベルごとに異なる色で融合します。関数 labeloverlay は、<undefined> カテゴリのピクセルを色で融合しません。

B = labeloverlay(___,Name=Value) は、計算の特性を制御する名前と値の引数を使用して、融合オーバーレイ イメージ B を計算します。

すべて折りたたむ

イメージを読み取り、superpixels 関数を使用してイメージをセグメント化します。

A = imread("kobi.png");
[L,N] = superpixels(A,20);

セグメント化されたラベル行列内の各領域で、元のイメージに一意の色を融合させます。融合したイメージを表示します。鼻や目に重ねられた紫色の色合いなど、似たような色をもつ領域がいくつか隣接しています。色が似ているため、領域の境界を視覚的に判断することが困難です。

B = labeloverlay(A,L);
imshow(B)

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

名前と値の引数 ColorAssignment"contrasting-neighbors" として指定し、隣接する領域間の色のコントラストを改善します。融合したイメージを表示します。この融合イメージのラベルでは、コントラストの高い 4 つの色のみが使用されています。色のコントラストが高いため、領域境界の視認性が改善されています。

C = labeloverlay(A,L,ColorAssignment="contrasting-neighbors");
imshow(C)

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

グレースケール イメージを読み取り、それを表示します。

A = imread("coins.png");
imshow(A)

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

バイナリしきい値処理を使用してマスクを作成します。

t = graythresh(A);
BW = imbinarize(A,t);
imshow(BW)

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

マスクを元のイメージと融合します。融合したイメージを表示します。

B = labeloverlay(A,BW);
imshow(B)

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

イメージとそのセグメント化されたラベル イメージを読み取ります。

A = imread("yellowlily.jpg");
L = imread("yellowlily-segmented.png");

数値ラベル行列を categorical 行列に変換します。カテゴリの値と名前を指定します。

C = categorical(L,[1 2 3],["petal" "leaf" "dirt"]);

カテゴリカル ラベルを元のイメージと融合します。融合したイメージを表示します。

B = labeloverlay(A,C);
imshow(B)

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

元のイメージを、カテゴリカル セグメンテーションの 2 つのラベルのみと融合します。カラーマップを変更し、ラベルの不透明度を大きくし、結果を表示します。

B2 = labeloverlay(A,C,IncludedLabels=["petal" "leaf"], ...
    Colormap="autumn",Transparency=0.25);
imshow(B2)

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

入力引数

すべて折りたたむ

入力イメージ。2 次元グレースケールまたはカラー イメージとして指定します。

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

ラベル。非負の整数の行列として指定します。

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

マスク。logical 行列として指定します。

データ型: logical

カテゴリ ラベル。categorical 行列として指定します。

データ型: categorical

名前と値の引数

すべて折りたたむ

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例: labeloverlay(A,L,Colormap="hot") は、"hot" カラーマップの色を使用してラベルを表示します。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: labeloverlay(A,L,"Colormap","hot") は、"hot" カラーマップの色を使用してラベルを表示します。

R2025a 以降

色の割り当て。次の表のいずれかの値として指定します。

色の割り当ての値説明出力のサンプル
"noshuffle"カラーマップの色をラベル行列領域に番号順で割り当てます。それぞれの領域に一意の色が割り当てられます。

Label overlay without shuffling color order.

"shuffle"疑似ランダムにカラーマップの色を割り当てます。それぞれの領域に一意の色が割り当てられます。

Label overlay with shuffling color order.

"auto"Colormap の形式に基づいてカラーマップの色を割り当てます。既定では、labeloverlay では、カラーマップを名前で指定すると色の順序がシャッフルされ、カラーマップを数値行列として指定すると色の順序が保持されます。

Colormap を string として指定する場合、または Colormap の既定値を使用する場合は、"shuffle" と同じです。

Colormap を数値行列として指定する場合は、"noshuffle" と同じです。

"contrasting-neighbors"隣接する領域間のコントラストを最大化するために、カラーマップの色のサブセットを割り当てます。各色を複数のラベルに対応させることができます。

Label overlay with four high-contrast colors that improve the clarity of region boundaries.

カラーマップ。次のいずれかの値として指定します。

  • l 行 3 列のカラーマップ。カラーマップの各行の RGB 3 成分は [0, 1] の範囲に正規化しなければなりません。l は、ラベル行列 L、バイナリ マスク BW、または categorical 行列 C のラベルの数です。

  • colormap 関数に対する有効な入力の 1 つに対応する string または文字ベクトル。既定では、labeloverlay は、隣接ラベルがより明確に区別されるように、指定されたカラーマップをシャッフルします。

メモ

ColorAssignment"contrasting-neighbors" として指定すると、labeloverlay は、視覚的なコントラストが高いカラーマップから色のサブセットを選択します。

例: [0.2, 0.1, 0.5; 0.1, 0.5, 0.8]

例: "hot"

データ型: single | double | char | string

融合したイメージ内に表示するラベル。次のいずれかとして指定します。

  • 範囲 [0, max(L(:))] の整数または整数のベクトル。既定では、labeloverlay は、すべての非ゼロ ラベルを表示します。

  • string、または string のベクトル。categorical 行列 C のラベルに対応します。既定では、labeloverlay は、定義されたすべてのカテゴリカル ラベルを表示します。

ベクトルに含まれていないラベルは背景と見なされます。たとえばベクトル [1 3 4] の場合、値 2 は背景と見なされますが、もしこのベクトルに含まれていればラベルと見なされます。

例: [1 3 4]

例: ["flower","stem"]

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

表示されるラベルの透明度。範囲 [0, 1] の数値として指定します。

  • 0 の値を指定すると、カラー ラベルは完全に不透明になります。

  • 1 の値を指定すると、カラー ラベルは完全に透明になります。

データ型: single | double

出力引数

すべて折りたたむ

融合したイメージ。A と同じサイズの数値行列として返されます。

データ型: uint8

バージョン履歴

R2017b で導入

すべて展開する