Main Content

さまざまなイメージ タイプの表示

使用するイメージのタイプの決定に関するヘルプが必要な場合は、ツールボックスでのイメージ タイプを参照してください。

インデックス付きイメージの表示

インデックス付きイメージを表示するには、関数 imshow またはイメージ ビューアー アプリを使用して、イメージ行列とカラーマップの両方を指定します。このサンプル コードでは、変数名 X を使用してワークスペース内のインデックス付きイメージを表し、map を使用してカラーマップを表します。

imshow(X,map)

または

imageViewer(X,Colormap=map)

X のピクセルごとに、これらの関数は対応する map の行に保存された色を表示します。イメージ行列データがデータ型 double である場合、値 1 がカラーマップの最初の行を示し、値 2 がカラーマップの 2 行目を示します (以降の値も同様)。ただし、イメージ行列データがデータ型 uint8 またはデータ型 uint16 である場合、値 0 がカラーマップの最初の行を示し、値 1 がカラーマップの 2 行目を示します (以降の値も同様)。このオフセットは、イメージ ビューアー アプリおよび関数 imshow によって自動的に処理されます。

カラーマップに含まれている色の数がイメージより多い場合、関数はカラーマップ内の余分な色を無視します。カラーマップに含まれている色の数がイメージで必要とされる色の数より少ない場合、関数は、カラーマップの範囲を超えるすべてのイメージ ピクセルをカラーマップの最後の色に設定します。たとえば、データ型 uint8 のイメージに 256 色が含まれており、そのイメージを 16 色のみを含むカラーマップで表示する場合、値 15 以上のすべてのピクセルがカラーマップ内の最後の色で表示されます。

グレースケール イメージの表示

グレースケール イメージを表示するには、関数 imshow を呼び出すか、イメージ ビューアー アプリを開きます。このドキュメンテーションでは、変数名 I を使用してワークスペース内のグレースケール イメージを表します。

どちらの関数も、イメージを表示する際、強度値を "スケーリング" してグレースケール カラーマップへのインデックスとして使用します。

Idouble の場合、ピクセル値 0.0 が黒、ピクセル値 1.0 が白、その 2 つの間のピクセル値はグレーの色調としてそれぞれ表示されます。Iuint8 の場合、ピクセル値 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イメージ ビューアー アプリのそれぞれで次の構文を使用することで、表示範囲を直接指定できます。

imshow(I,DisplayRange=[low high])

または

imageViewer(I,DisplayRange=[low high])

表示範囲に空行列 ([]) を使用すると、これらの関数はデータを自動的にスケーリングし、low および high を配列内の最小値と最大値に設定します。

次の例は、グレースケール イメージをフィルター処理し、扱っていない範囲のデータを作成します。この例では、自動スケーリング オプションを使用して imageViewer を呼び出し、イメージ ビューアーにイメージを表示します。この例を実行する場合は、イメージ ビューアー ウィンドウの右下隅で指定される表示範囲に注意してください。

I = imread("testpat1.png");
J = filter2([1 2;-1 -2],I);
imageViewer(J,DisplayRange=[]);

Image Viewer app displaying an image of data type double with a nonstandard display range of [-631, 765]

バイナリ イメージの表示

MATLAB では、バイナリ イメージのデータ型は logical です。バイナリ イメージに含まれるのは 0 と 1 だけです。値 0 のピクセルは黒、値 1 のピクセルは白として表示されます。

メモ

ツールボックスでイメージをバイナリとして解釈する場合、イメージのデータ型は logical でなければなりません。0 と 1 のみを含んでいるグレースケール イメージはバイナリ イメージではありません。

バイナリ イメージを表示するには、関数 imshow を呼び出すか、イメージ ビューアー アプリを開きます。たとえば、このコードは MATLAB ワークスペースにバイナリ イメージを読み取り、イメージを表示します。このサンプル コードでは、変数名 BW を使用してワークスペース内のバイナリ イメージを表します。

BW = imread("circles.png");
imshow(BW)

Binary image displayed as a black background and white region of interest.

バイナリ イメージの表示色の変更

場合によっては、0 の値が白、1 の値が黒として表示されるようにバイナリ イメージを反転表示しなければならないことがあります。これを行うには、MATLAB で NOT (~) 演算子を使用します (この例では、イメージの境界を示すためにイメージの周りにボックスが描かれています)。次に例を示します。

imshow(~BW)

Binary image displayed as a white background and black region of interest.

また、インデックス付きイメージのカラーマップ構文を使用してバイナリ イメージを表示することもできます。たとえば、次のコマンドは 0 を赤、1 を青として表示する 2 行のカラーマップを指定します。

imshow(BW,[1 0 0; 0 0 1])

Binary image displayed as a red background and blue region of interest.

トゥルーカラー イメージの表示

RGB イメージとも呼ばれるトゥルーカラー イメージは、カラーマップを使わずに色値を直接表します。トゥルーカラー イメージは m × n × 3 の配列です。イメージ内のピクセル (r,c) ごとに、色は 3 成分 (r,c,1:3) によって表されます。

トゥルーカラー イメージを表示するには、関数 imshow を呼び出すか、イメージ ビューアー アプリを開きます。たとえば、このコードは MATLAB ワークスペースにトゥルーカラー イメージを読み取り、イメージを表示します。このサンプル コードでは、変数名 RGB を使用してワークスペース内のトゥルーカラー イメージを表します。

RGB = imread("peppers.png");
imshow(RGB)

RGB image

スクリーン ピクセルごとに 24 ビットを使用するシステムでは、赤、緑、青の色平面にそれぞれ 8 ビット(256 レベル) を割り当てるので、トゥルーカラー イメージを直接表示できます。色が少ないシステムでは、関数 imshow は、色の近似とディザリングの組み合わせを使用してイメージを表示します。詳細については、色の表示を参照してください。

メモ

カラー イメージの表示がモノクロでの表示になってしまう場合、イメージがインデックス付きイメージかどうかを確認してください。インデックス付きイメージを使用する場合は、イメージに関連付けられたカラーマップを指定しなければなりません。詳細については、インデックス付きイメージの表示を参照してください。