メインコンテンツ

label2rgb

ラベル行列を RGB イメージに変換

説明

RGB = label2rgb(L) は、ラベル イメージ L を、ラベル化された領域を可視化する目的で、RGB カラー イメージに変換します。関数 label2rgb は、ラベル行列内のオブジェクト数をベースに個々のオブジェクトに割り当てる色を決定します。関数 label2rgb は、カラーマップのすべての範囲から色をピックアップします。

RGB = label2rgb(L,cmap) は RGB イメージで使用されるカラーマップ cmap を指定します。

RGB = label2rgb(L,cmap,zerocolor) は、背景要素 (0 というラベルが付けられたピクセル) の RGB カラーを指定します。

RGB = label2rgb(L,cmap,zerocolor,colorAssignment) は、label2rgb がラベル行列の中の領域に色をどのように割り当てるかを制御します。

RGB = label2rgb(___,OutputFormat=outputFormat) では、この関数で RGB イメージではなく独自の色のリストを返すよう指定できます。

R2021a より前では、等価の構文 RGB = label2rgb(__,"OutputFormat",outputFormat) を使用します。

すべて折りたたむ

イメージを読み取って表示します。

I = imread("rice.png"); 
imshow(I)

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

イメージからラベル行列を作成します。

BW = imbinarize(I); 
CC = bwconncomp(BW);
L = labelmatrix(CC);

既定の設定を使用して、ラベル行列を RGB イメージに変換します。背景のピクセルは白です。

RGB = label2rgb(L);
imshow(RGB)

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

オプションのパラメーターを指定して、ラベル行列を RGB イメージに変換します。この例では "spring" カラーマップを使用して、背景のピクセルをシアンに設定し、無作為で各ラベルに色を割り当てます。

RGB2 = label2rgb(L,"spring","c","shuffle"); 
imshow(RGB2)

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

入力引数

すべて折りたたむ

連続領域のラベル イメージ。次のいずれかを指定します。

  • 非負の整数の行列。0 とラベル付けされたピクセルは背景です。1 とラベル付けされたピクセルは 1 番目のオブジェクトを構成し、2 とラベル付けされたピクセルは 2 番目のオブジェクトを構成する、というように、次々にオブジェクトを構成します。数値ラベル イメージは、watershedlabelmatrix などのラベル付け関数から取得できます。

  • categorical 行列。

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

生成されるカラー イメージ RGB で使用されるカラーマップ。次のいずれかとして指定します。

説明
データ型が doublec 行 3 列の行列

c カラーを RGB 3 成分として指定するカラーマップ行列。c は、ラベル行列 L のラベル数 numlabels 以上でなければなりません。ラベル数は numlabels = max(L(:)) として計算できます。

cnumlabels より大きい場合、label2rgb は、行列の最初の numlabels 行のみを使用して RGB イメージを作成します。

カラーマップ関数

MATLAB® カラーマップ関数の名前。"jet""gray" などです。サポートされているカラーマップの一覧については、colormap を参照してください。

カラーマップ ハンドル

カラーマップ関数のハンドル (@jet@gray など)。

塗りつぶし色。RGB 3 成分を表す 3 要素ベクトルを指定するか、数値ラベル イメージの場合は次のカラーの省略形のいずれかを指定します。label2rgb はこの塗りつぶし色を、数値ラベル イメージの場合はラベル 0 に、カテゴリカル ラベル イメージの場合はラベル <undefined> に適用します。

"b"blue
"c"cyan
"g" green
"k"black
"m"magenta
"r"red
"w"white
"y"yellow

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

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

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

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

RGB に返される RGB データの出力形式。以下のいずれかとして指定します。

  • "image" — RGB イメージを返します。入力のラベル行列 L のサイズが MN 列の場合、出力の RGB イメージのサイズは M x N x 3 です。

  • "triplets" — RGB カラーのリストを返します。出力のサイズは C 行 3 列の行列であり、入力のラベル行列にある C 個の各ラベルの RGB 3 成分が含まれます。

出力引数

すべて折りたたむ

RGB データ。数値行列として返されます。

データ型: uint8

拡張機能

すべて展開する

バージョン履歴

R2006a より前に導入

すべて展開する