さまざまなイメージ タイプの表示
使用するイメージのタイプの決定に関するヘルプが必要な場合は、ツールボックスでのイメージ タイプを参照してください。
インデックス付きイメージの表示
インデックス付きイメージを表示するには、関数 imshow
またはイメージ ビューアー アプリを使用して、イメージ行列とカラーマップの両方を指定します。このサンプル コードでは、変数名 X
を使用してワークスペース内のインデックス付きイメージを表し、map
を使用してカラーマップを表します。
imshow(X,map)
または
imtool(X,map)
X
のピクセルごとに、これらの関数は対応する map
の行に保存された色を表示します。イメージ行列データがデータ型 double
である場合、値 1 がカラーマップの最初の行を示し、値 2 がカラーマップの 2 行目を示します (以降の値も同様)。ただし、イメージ行列データがデータ型 uint8
またはデータ型 uint16
である場合、値 0 がカラーマップの最初の行を示し、値 1 がカラーマップの 2 行目を示します (以降の値も同様)。このオフセットは、イメージ ビューアー アプリおよび関数 imshow
によって自動的に処理されます。
カラーマップに含まれている色の数がイメージより多い場合、関数はカラーマップ内の余分な色を無視します。カラーマップに含まれている色の数がイメージで必要とされる色の数より少ない場合、関数は、カラーマップの範囲を超えるすべてのイメージ ピクセルをカラーマップの最後の色に設定します。たとえば、データ型 uint8
のイメージに 256 色が含まれており、そのイメージを 16 色のみを含むカラーマップで表示する場合、値 15 以上のすべてのピクセルがカラーマップ内の最後の色で表示されます。
グレースケール イメージの表示
グレースケール イメージを表示するには、関数 imshow
を呼び出すか、イメージ ビューアー アプリを開きます。このドキュメンテーションでは、変数名 I
を使用してワークスペース内のグレースケール イメージを表します。
どちらの関数も、イメージを表示する際、強度値を "スケーリング" してグレースケール カラーマップへのインデックスとして使用します。
I
が double
の場合、ピクセル値 0.0 が黒、ピクセル値 1.0 が白、その 2 つの間のピクセル値はグレーの色調としてそれぞれ表示されます。I
が uint8
の場合、ピクセル値 255 は白として表示されます。I が uint16
の場合、ピクセル値 65535 は白として表示されます。
グレースケール イメージは、各イメージが m 行 3 列の RGB カラーマップを使用するという点においてインデックス付きイメージと似ていますが、通常、グレースケール イメージにカラーマップを指定しません。MATLAB® は、R=G=B であるグレースケール システム カラーマップを使用してグレースケール イメージを表示します。既定の設定では、24 ビット色のシステムではカラーマップのグレーのレベル数は 256 であり、他のシステムでは 64 または 32 です (詳細については、色の表示を参照してください)。
扱っていない範囲をもつグレースケール イメージの表示
場合によっては、グレースケール イメージとして表示するイメージ データが、ツールボックスの通常の範囲外の表示範囲をもつ可能性があります (つまり、single
配列または double
配列の場合に [0, 1]、uint8
配列の場合に [0, 255]、uint16
配列の場合に [0, 65535]、または int16
配列の場合に [-32767, 32768])。たとえば、グレースケール イメージをフィルター処理する場合、一部の出力データが元のデータの範囲外になることがあります。
扱っていない範囲のデータをイメージとして表示するには、関数 imshow
と imtool
の両方について次の構文を使用することで、表示範囲を直接指定できます。
imshow(I,"DisplayRange",[low high])
または
imtool(I,"DisplayRange",[low high])
表示範囲に空行列 ([]
) を使用すると、これらの関数はデータを自動的にスケーリングし、low
および high
を配列内の最小値と最大値に設定します。
次の例は、グレースケール イメージをフィルター処理し、扱っていない範囲のデータを作成します。この例では、自動スケーリング オプションを使用して関数 imtool
を呼び出し、イメージ ビューアーにイメージを表示します。この例を実行する場合は、イメージ ビューアー ウィンドウの右下隅で指定される表示範囲に注意してください。
I = imread("testpat1.png"); J = filter2([1 2;-1 -2],I); imtool(J,"DisplayRange",[]);
バイナリ イメージの表示
MATLAB では、バイナリ イメージのデータ型は logical
です。バイナリ イメージに含まれるのは 0 と 1 だけです。値 0 のピクセルは黒、値 1 のピクセルは白として表示されます。
メモ
ツールボックスでイメージをバイナリとして解釈する場合、イメージのデータ型は logical
でなければなりません。0 と 1 のみを含んでいるグレースケール イメージはバイナリ イメージではありません。
バイナリ イメージを表示するには、関数 imshow
を呼び出すか、イメージ ビューアー アプリを開きます。たとえば、このコードは MATLAB ワークスペースにバイナリ イメージを読み取り、イメージを表示します。このサンプル コードでは、変数名 BW
を使用してワークスペース内のバイナリ イメージを表します。
BW = imread("circles.png");
imshow(BW)
バイナリ イメージの表示色の変更
場合によっては、0 の値が白、1 の値が黒として表示されるようにバイナリ イメージを反転表示しなければならないことがあります。これを行うには、MATLAB で NOT (~) 演算子を使用します (この例では、イメージの境界を示すためにイメージの周りにボックスが描かれています)。次に例を示します。
imshow(~BW)
また、インデックス付きイメージのカラーマップ構文を使用してバイナリ イメージを表示することもできます。たとえば、次のコマンドは 0 を赤、1 を青として表示する 2 行のカラーマップを指定します。
imshow(BW,[1 0 0; 0 0 1])
トゥルーカラー イメージの表示
RGB イメージとも呼ばれるトゥルーカラー イメージは、カラーマップを使わずに色値を直接表します。トゥルーカラー イメージは m × n × 3 の配列です。イメージ内のピクセル (r,c
) ごとに、色は 3 成分 (r,c,1:3
) によって表されます。
トゥルーカラー イメージを表示するには、関数 imshow
を呼び出すか、イメージ ビューアー アプリを開きます。たとえば、このコードは MATLAB ワークスペースにトゥルーカラー イメージを読み取り、イメージを表示します。このサンプル コードでは、変数名 RGB
を使用してワークスペース内のトゥルーカラー イメージを表します。
RGB = imread("peppers.png");
imshow(RGB)
スクリーン ピクセルごとに 24 ビットを使用するシステムでは、赤、緑、青の色平面にそれぞれ 8 ビット(256 レベル) を割り当てるので、トゥルーカラー イメージを直接表示できます。色が少ないシステムでは、関数 imshow
は、色の近似とディザリングの組み合わせを使用してイメージを表示します。詳細については、色の表示を参照してください。
メモ
カラー イメージの表示がモノクロでの表示になってしまう場合、イメージがインデックス付きイメージかどうかを確認してください。インデックス付きイメージを使用する場合は、イメージに関連付けられたカラーマップを指定しなければなりません。詳細については、インデックス付きイメージの表示を参照してください。