ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

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

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

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

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

imshow(X,map)

または

imtool(X,map)

X のピクセルごとに、これらの関数は対応する map の行に保存された色を表示します。イメージ行列データが double クラスの場合、値 1 はカラーマップの最初の行を示し、値 2 は 2 行目を示します。ただし、イメージ行列データが uint8 クラスまたは uint16 クラスの場合、値 0 (ゼロ) はカラーマップの最初の行を示し、値 1 は 2 行目を示します。このオフセットは関数 imtool および 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])。たとえば、グレースケール イメージをフィルター処理する場合、一部の出力データが元のデータの範囲外になることがあります。

扱っていない範囲のデータをイメージとして表示するには、関数 imshowimtool の両方について次の構文を使用することで、表示範囲を直接指定できます。

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 は、色の近似とディザリングの組み合わせを使用してイメージを表示します。詳細は、色の表示 を参照してください。

メモ:

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