イメージ データをカラーマップに関連付ける方法
関数 image を使用してイメージを表示するとき、ピクセル値の範囲をどのようにカラーマップの範囲にマッピングするかを制御できます。たとえば、次の 5 行 5 列の魔方陣は既定のカラーマップを使用してイメージとして表示されます。
A = magic(5)
A =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
im = image(A);
axis off
colorbar
A は 1 から 25 の値を含んでいます。MATLAB® では、それらの値が、64 のエントリがあるカラーマップへのインデックスとして処理されます。したがって、前述のイメージのすべてのピクセルがカラーマップの最初の 25 エントリにマッピングされます (ほぼカラー バーの青色の領域)。

このマッピングは、Image オブジェクトの CDataMapping プロパティによって制御できます。前の図に示されている既定の動作は、このプロパティの 'direct' オプションに対応します。独自のカラーマップを含んだイメージ (GIF イメージなど) を表示するときには、直接マッピングが役に立ちます。ただし、イメージで特定の物理単位 (メートルや度など) の測定値を表現する場合、CDataMapping プロパティを 'scaled' に設定します。スケーリングによるマッピングは色の全範囲を使用するため、データの相対的な差異を可視化できます。
im.CDataMapping = 'scaled';
'scaled' オプションは、A の最小値をカラーマップの最初のエントリにマッピングし、A の最大値をカラーマップの最後のエントリにマッピングします。A のすべての中間の値は、カラーマップに対して線形にスケーリングされます。

CDataMapping プロパティを 'scaled' に設定する代わりとして、関数 imagesc を呼び出して同じ効果を得ることができます。
imagesc(A)
axis off
colorbar
カラーマップを変更した場合、A の値が新しいカラーマップに対してスケーリングされます。
colormap(gray)

スケーリングによるマッピングは、カラーマップのない図形イメージを表示する場合や、図形イメージのカラーマップを変更する場合にも役立ちます。次のコマンドは、gray カラーマップを使用してイメージを表示します。このカラーマップは、このイメージと共に格納された元のカラーマップとは異なるものです。
load clown image(X,'CDataMapping','scaled') colormap(gray) axis off colorbar
