このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
インデックス付きイメージは、データ行列X
とカラーマップ行列map
から構成されています。map
は、[0,1] の範囲の浮動小数点値を含むクラスdouble
のm行 3 列の配列です。map
の各行は、単一色を構成する赤、緑、青の成分を指定するものです。インデックス付きイメージは、ピクセル値をカラーマップ値に “直接マッピング” したものを使います。各イメージ ピクセルの色が、X
の対応する値をmap
のインデックスとして使用することにより決定されます。そのためX
の値は整数になります。値 1 はmap
の中の 1 番目の行を示し、値 2 は 2 番目の行のように示します。インデックス付きイメージを、以下のステートメントで表示します。
image(X); colormap(map)
カラーマップはインデックス付きイメージと共に保存されることが多く、関数imread
を使用すると、自動的にイメージと共に読み込まれます。しかし、既定のカラーマップを使わなければならないという制限はなく、選択した任意のカラーマップを使うことができます。CDataMapping
プロパティに関する記述は、使用するマッピングのタイプの変更法を記述します。
次の図は、インデックス付きイメージの構造を示しています。イメージ内のピクセルは整数で表されます。この整数は、カラーマップに格納されている色値へのポインター (インデックス) です。
イメージ行列の値とカラーマップとの関係は、イメージ行列のクラスに依存しています。イメージ行列がクラスdouble
の場合,値1はカラーマップの最初の行を示し,値は2行目を示します。イメージ行列がクラスuint8
またはuint16
のいずれかの場合、オフセットが存在します。値 0 は、カラーマップの最初の行を示し、値 1 は、カラーマップの 2 行目を示します。オフセットは、グラフィックス ファイル形式の中でも使われ、サポートできるカラー数を最大にします。上のイメージでは、イメージ行列はクラスdouble
です。オフセットが存在しないので、値 5 は、カラーマップの 5 行目を示します。
グレースケール イメージは"強度"イメージと呼ばれることもあるデータ行列I
で、その値は何らかの範囲内の強度を表します。グレースケール イメージは単一の行列として表され、その行列の各要素が 1 つのイメージ ピクセルに対応します。この行列のクラスはdouble
、uint8
またはuint16
のいずれかになります。グレースケール イメージがカラーマップと共に保存されることはまれですが、グレースケール イメージの表示にカラーマップが使われることはあります。基本的に、グレースケール イメージはインデックス付きイメージとして取り扱われます。
次の図は、クラスdouble
のグレースケール イメージを示しています。
グレースケール イメージを表示するには関数imagesc
("image scale") を使用しますが、これにより強度値の範囲を設定できるようになります。imagesc
によってイメージ データがスケーリングされ、フル カラーマップが使用できるようになります。たとえば、imagesc
の 2 入力形式を使用して、グレースケール イメージを表示します。
imagesc(I,[0 1]); colormap(gray);
imagesc
の 2 番目の入力引数は、必要な強度の範囲を指定します。関数imagesc
は、範囲内の最初の値 (通常 0) を 1 番目のカラーマップのエントリにマッピングし、2 番目の値 (通常 1) を最後のカラーマップのエントリにマッピングしてI
を表示します。これらの間の値は、カラーマップの残りの色に線形分布されます。
通常、グレースケール カラーマップを使用してグレースケール イメージを表示しますが、他のカラーマップを使うこともできます。たとえば、次のステートメントは、グレースケール イメージI
を青と緑の色調で表示します。
imagesc(I,[0 1]); colormap(winter);
任意の値の範囲をもつ行列A
をグレースケール イメージとして表示するには、引数 1 つの形式のimagesc
を使用します。入力引数が 1 つである場合、imagesc
により、データ行列の最小値がカラーマップの最初の要素にマッピングされ、最大値がカラーマップの最後の要素にマッピングされます。たとえば、次の 2 行は同じものになります。
imagesc(A); colormap(gray) imagesc(A,[min(A(:)) max(A(:))]); colormap(gray)
RGB イメージは、しばしばトゥルーカラーイメージと言われ、各ピクセルの赤、緑、青成分を定義するmxnx 3 のデータ配列として保存されます。RGB イメージは、パレットを使いません。各ピクセルのカラーは、ピクセルの位置での各色平面に格納されている赤、緑、青の強度の組み合わせで決定されます。グラフィックス ファイル形式では、RGB イメージが 24 ビット イメージ (赤、緑、青の成分がそれぞれ 8 ビット) として保存されます。これにより、1600 万色を表す可能性を示しています。実物のイメージを再現できる精度であるということから、"トゥルーカラー イメージ" という名前が付けられています。
RGB MATLAB®配列は、クラスdouble
、uint8
、uint16
のいずれかです。クラスdouble
の RGB 配列の場合、各色成分は 0 ~ 1 の値です。色成分が (0,0,0) であるピクセルは黒として表示され、色成分が (1,1,1) であるピクセルは白として表示されます。各ピクセルの 3 つの色成分は、データ配列の 3 番目の次元に沿って保存されます。たとえば、ピクセル (10,5) の赤、緑、青の色成分は、それぞれ、RGB(10,5,1)
、RGB(10,5,2)
、RGB(10,5,3)
に保存されます。
トゥルーカラー イメージRGB
を表示するには、関数image
を使用します。
image(RGB)
次の図は、クラスdouble
の RGB イメージを示しています。
(2, 3) のピクセルのカラーを決定するには、(2, 3, 1: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