Main Content

ツールボックスでのイメージ タイプ

Image Processing Toolbox™ ソフトウェアには、いくつかの基本的なイメージ タイプが定義されています。これを次の表に示します。これらのイメージ タイプは、MATLAB® が配列要素をピクセル強度値として解釈する方法を決定します。

Image Processing Toolbox のすべてのイメージは、非スパース値を持つと仮定されます。数値イメージおよび論理イメージは、特に指定されない限り、実数値である必要があります。

イメージ タイプ

解釈

バイナリ イメージ

イメージ データは、mn 列の logical 行列として格納され、この行列では 0 および 1 の値がそれぞれ黒および白として解釈されます。ツールボックスの関数には、mn 列の数値行列をバイナリ イメージとして解釈できるものもあり、この場合は 0 の値が黒、非ゼロ値がすべて白となります。

インデックス付きイメージ

イメージ データは、mn 列の数値行列として格納されます。この行列の要素は、カラーマップに直接マッピングされるインデックスです。カラーマップの各行は、単一色を構成する赤、緑、青の成分を指定します。

  • single または double の配列では、整数値の範囲は [1, p] になります。

  • logicaluint8 または uint16 の配列では、値の範囲は [0, p-1] になります。

カラーマップは、[0, 1] の範囲の値をもつデータ型 doublec 行 3 列の配列です。

グレースケール イメージ

("強度" イメージとも呼ばれます)

イメージ データは、要素が強度値を指定する mn 列の数値行列として格納されます。最小値が黒を示し、最大値が白を示しています。

  • single または double の配列では、値の範囲は [0, 1] になります。

  • uint8 の配列では、値の範囲は [0, 255] になります。

  • uint16 では、値の範囲は [0, 65535] になります。

  • int16 では、値の範囲は [-32768, 32767] になります。

トゥルーカラー イメージ

(一般的には RGB イメージと呼ばれます)

イメージ データは、要素が 3 つのうち 1 つのカラー チャネルの強度値を指定する m x n x 3 の数値配列として格納されます。RGB イメージの場合、3 つのチャネルはイメージの赤、緑、青の信号を表します。

  • single または double の配列では、RGB 値の範囲は [0, 1] になります。

  • uint8 の配列では、RGB 値の範囲は [0, 255] になります。

  • uint16 では、RGB 値の範囲は [0, 65535] になります。

他に、3 つのカラー チャネルを使用して色を記述する、色空間と呼ばれるモデルがあります。これらの色空間では、各データ型の範囲は、RGB 色空間のイメージで許容される範囲とは異なる場合があります。たとえば、データ型 double の L*a*b* 色空間のピクセル値は、負になるか、または 1 より大きくなることがあります。詳細については、異なる色空間間での変換についてを参照してください。

ハイ ダイナミック レンジ (HDR) イメージHDR イメージは、mn 列の数値行列または m x n x 3 の数値配列として格納され、それぞれグレースケール イメージまたは RGB イメージと同様です。HDR イメージはデータ型 single または double を持ちますが、データ値は [0, 1] の範囲に限られるものではなく、Inf 値を格納できます。詳細については、ハイ ダイナミック レンジ イメージの使用を参照してください。
マルチスペクトル イメージとハイパースペクトル イメージ

イメージ データは、m x n x c の数値配列として格納されます。ここで、c はカラー チャネルの数です。

ラベル イメージ

イメージ データは、mn 列の categorical 行列または非負の整数行列として格納されます。

バイナリ イメージ

バイナリ イメージでは、各ピクセルが 2 つの離散値のうち、次のいずれかの値のみを持ちます。0 または 1。ツールボックスのほとんどの関数は、値が 1 のピクセルは関心領域に属すと解釈し、値が 0 のピクセルは背景として解釈します。多くの場合、バイナリ イメージは、イメージのどの部分が処理対象であるかを示すために他のイメージ タイプと併用されます。

次の図は、一部のピクセル値が拡大されたバイナリ イメージを示しています。

Binary image in which black pixels are false (0) and white pixels are true (1)

インデックス付きイメージ

インデックス付きイメージは、イメージ行列とカラーマップで構成されます。

カラーマップは、[0, 1] の範囲の値をもつデータ型 doublec 行 3 列の行列です。カラーマップの各行は、単一色を構成する赤、緑、青の成分を指定します。

イメージ行列内のピクセル値は、カラーマップに直接マッピングされるインデックスです。そのため、インデックス付きイメージの各ピクセルの色は、イメージ行列内のピクセル値をカラーマップ内の対応する色にマッピングすることで決定されます。このマッピングは、イメージ行列のデータ型により、次のように異なります。

  • イメージ行列がデータ型 single またはデータ型 double の場合、カラーマップには通常、範囲 [1, p] の整数値が含まれます。ここで、p はカラーマップの長さです。値 1 はカラーマップの 1 行目を、値 2 はカラーマップの 2 行目を示します (以降の値も同様)。

  • イメージ行列のデータ型が logicaluint8、または uint16 の場合、カラーマップには通常、範囲 [0, p-1] の整数値が含まれます。値 0 はカラーマップの 1 行目を、値 1 はカラーマップの 2 行目を示します (以降の値も同様)。

カラーマップはインデックス付きイメージと共に格納されることが多く、関数 imread を使用すると、自動的にイメージと共に読み込まれます。イメージとカラーマップを個別の変数としてワークスペースに読み取った後は、イメージとカラーマップの間の関連付けを追跡しなければなりません。しかし、既定のカラーマップを使わなければならないという制限はなく、選択した任意のカラーマップを使用できます。

次の図は、それぞれインデックス付きイメージ、イメージ行列、およびカラーマップを示しています。イメージ行列のデータ型が double であるため、値 7 はカラーマップの 7 行目を指しています。

Colored indexed image accompanied by a selection of printed pixel and colormap values

グレースケール イメージ

グレースケール イメージは、1 つのイメージ ピクセルの強度を表す値を持つデータ行列です。グレースケール イメージがカラーマップと共に保存されることはほとんどありませんが、MATLAB ではカラーマップを使用してグレースケール イメージを表示します。

グレースケール イメージは、各ピクセルの単一信号を取得するカメラから直接得ることができます。また、トゥルーカラー イメージまたはマルチスペクトル イメージをグレースケールに変換すると、イメージの特定の側面を強調することもできます。たとえば、結果のグレースケール イメージが、各ピクセルの明度、彩度または色相を示すように、RGB イメージの赤、緑および青のチャネルの線形結合を取得できます。チャネルを個別のグレースケール イメージに分割することで、トゥルーカラー イメージまたはマルチスペクトル イメージの各チャネルを別々に処理することが可能です。

次の図は、範囲 [0, 1] のピクセル値をもつデータ型 double のグレースケール イメージを示しています。

Grayscale image accompanied by a selection of printed pixel values

トゥルーカラー イメージ

トゥルーカラー イメージとは、各ピクセルの色が 3 つの値で指定されているイメージです。グラフィックス ファイル形式では、トゥルーカラー イメージは 24 ビット イメージとして格納され、3 つのカラー チャネルはそれぞれ 8 ビットです。これにより、1600 万色を表す可能性を示しています。実物のイメージを再現できる精度であるということから、トゥルーカラー イメージという言葉が一般的に使用されています。

最も一般的なタイプのトゥルーカラー イメージは RGB イメージです。RGB イメージの 3 つのカラー チャネルは、赤、緑、青です。RGB カラー チャネルの詳細については、RGB イメージの分離されたカラー チャネルの表示を参照してください。

他に、3 つの異なるカラー チャネルを使用して色を記述する、色空間と呼ばれるモデルがあります。これらの色空間では、各データ型の範囲は、RGB 色空間のイメージで許容される範囲とは異なる場合があります。たとえば、データ型 double の L*a*b* 色空間のピクセル値は、負になるか、または 1 より大きくなることがあります。詳細については、異なる色空間間での変換についてを参照してください。

トゥルーカラー イメージは、カラーマップを使用しません。各ピクセルのカラーは、そのピクセルの位置での各カラー チャネルに格納されている強度の組み合わせで決定されます。

次の図は、浮動小数点形式の RGB イメージの赤、緑、青のチャネルを示しています。ピクセル値が [0, 1] の範囲内にあることが分かります。

RGB image accompanied by a selection of printed pixel values for the three color channels

(行, 列) 座標 (2, 3) のピクセルの色を決定するには、ベクトル (2, 3,:) に格納されている RGB 3 成分を調べます。(2,3,1) に値 0.5176 が含まれていると仮定すると、(2,3,2) には 0.1608 が、(2,3,3) には 0.0627 が含まれています。(2, 3) でのピクセルの色は、次のようになります。

0.5176 0.1608 0.0627

HDR イメージ

ダイナミック レンジとは、明度レベルの範囲を指します。現実世界のシーンのダイナミック レンジは非常に高い場合もあります。ハイ ダイナミック レンジ (HDR) イメージは、32 ビットの浮動小数点値を使用して各カラー チャネルを保存し、現実世界のシーンの全階調範囲 ("シーン参照" と呼ばれる) のキャプチャを試みます。

次の図は、元のピクセル値の範囲が [0, 3.2813] にある、トーン マッピングされた HDR イメージの赤、緑、青のチャネルを示しています。トーン マッピングとは、HDR イメージのダイナミック レンジを、コンピューターのモニターまたは画面で想定される範囲まで小さくする処理です。

HDR image accompanied by a selection of printed pixel values for the three color channels

マルチスペクトル イメージとハイパースペクトル イメージ

マルチスペクトル イメージとは、3 つより多いチャネルを格納するタイプのカラー イメージです。たとえば、マルチスペクトル イメージは、3 つの RGB カラー チャネルと 3 つの赤外線チャネルの、合計 6 つのチャネルを格納することができます。通常、マルチスペクトル イメージには少ししかチャネルがありません。それに対し、ハイパースペクトル イメージは、数十から数百ものチャネルを格納することができます。

次の図は、赤、緑、青のカラー チャネル (1 つの RGB イメージとして表示) と 3 つの赤外線チャネルで構成される、6 つのチャネルを持つマルチスペクトル イメージを示しています。

Multispectral image separated into four separate images showing three infrared channels and the RGB channels

ラベル イメージ

ラベル イメージとは、各ピクセルがクラス、オブジェクトまたは関心領域 (ROI) を指定するイメージです。セグメンテーション手法を利用して、シーンのイメージからラベル イメージを導出することができます。

  • 数値ラベル イメージは、シーン内のオブジェクトまたは ROI を列挙します。ラベルは非負の整数です。通常、背景の値は 0 です。1 とラベル付けされたピクセルは 1 番目のオブジェクトを構成し、2 とラベル付けされたピクセルは 2 番目のオブジェクトを構成する、というように、次々にオブジェクトを構成します。

  • categorical ラベル イメージは、イメージ内の各ピクセルのクラスを指定します。一般的に、背景には値 <undefined> が割り当てられます。

次の図は、花弁、葉、土という 3 つのカテゴリを持つラベル イメージを示しています。

Label image accompanied by a selection of printed categorical pixel values

関連するトピック