メインコンテンツ

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 イメージではなく独自の色のリストを返すよう指定できます。

すべて折りたたむ

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

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 成分、16 進数カラー コード、色の名前、または色の省略名として指定します。label2rgb はこの塗りつぶし色を、数値ラベル イメージの場合はラベル 0 に、カテゴリカル ラベル イメージの場合はラベル <undefined> に適用します。

カスタム色の場合、RGB 3 成分または 16 進数カラー コードを指定します。

  • RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度は範囲 [0,1] に含まれていなければなりません。たとえば [0.4 0.6 0.7] のようになります。

  • 16 進数カラー コードは、ハッシュ記号 (#) で始まり、その後に 16 進数 (0 から F までの範囲) が 3 桁または 6 桁続く、string スカラーまたは文字ベクトルです。値の大文字と小文字は区別されません。そのため、カラー コード "#FF8800""#ff8800""#F80"、および "#f80" は等価です。

あるいは、一部の一般的な色を名前で指定できます。次の表に、名前付きの色のオプション、等価な RGB 3 成分、および 16 進数カラー コードを示します。

色名省略名RGB 3 成分16 進数カラー コード外観
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

次の表に、ライト テーマとダーク テーマにおけるプロットの既定のカラー パレットを示します。

パレットパレット カラー

"gem" — ライト テーマの既定

R2025a より前: ほとんどのプロットでは既定でこれらの色が使用されます。

Sample of the "gem" color palette

"glow" — ダーク テーマの既定

Sample of the "glow" color palette

orderedcolors 関数と rgb2hex 関数を使用して、これらのパレットの RGB 3 成分と 16 進数カラー コードを取得できます。たとえば、"gem" パレットの RGB 3 成分を取得し、それを 16 進数カラー コードに変換します。

RGB = orderedcolors("gem");
H = rgb2hex(RGB);

R2023b より前: RGB = get(groot,"FactoryAxesColorOrder") を使用して RGB 3 成分を取得します。

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

  • "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 より前に導入

すべて展開する