Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

imshow

説明

imshow(I) はグレースケール イメージ I を Figure に表示します。imshow は、イメージ データ型の既定の表示範囲を使用して、イメージ表示のための figure、axes、および image オブジェクトのプロパティを最適化します。

imshow(I,[low high]) は、表示範囲を 2 要素ベクトル [low high] の形で指定して、グレースケール イメージ I を表示します。詳細については、引数 DisplayRange を参照してください。

imshow(I,[]) はグレースケール イメージ I を、I のピクセル値の範囲に基づいてスケーリングして表示します。imshow[min(I(:)) max(I(:))] を表示範囲として使用します。imshowI の最小値を黒、最大値を白で表示します。詳細については、引数 DisplayRange を参照してください。

imshow(RGB) は、Figure にトゥルーカラー イメージ RGB を表示します。

imshow(BW) は、Figure にバイナリ イメージ BW を表示します。バイナリ イメージでは、imshow は値 0 (ゼロ) のピクセルを黒、1 を白で表示します。

imshow(X,map) は、カラーマップ map をもつインデックス付きイメージ X を表示します。

imshow(filename) は、filename で指定されたグラフィックス ファイルに保存されたイメージを表示します。

imshow(___,Name,Value) は、名前と値のペアを使用して演算の特性を制御し、イメージを表示します。

himage = imshow(___) は、imshow で作成された image オブジェクトを返します。

imshow(I,RI) は、関連付けられている 2 次元空間参照オブジェクト RI を用いてイメージ I を表示します。

imshow(X,RX,map) は、関連付けられている 2 次元空間参照オブジェクト RX およびカラーマップ map を用いて、インデックス付きイメージ X を表示します。

すべて折りたたむ

imshow を使用して RGB (トゥルーカラー)、グレースケール、バイナリ、またはインデックス付きイメージを表示します。

RGB イメージの表示

サンプル RGB イメージ peppers.png を MATLAB ワークスペースに読み取ります。

rgbImage = imread("peppers.png");

imshow を使用して RGB イメージを表示します。

imshow(rgbImage)

Figure contains an axes object. The axes object contains an object of type image.

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

関数 rgb2gray を使用して、RGB イメージをグレースケール イメージに変換します。

grayImage = rgb2gray(rgbImage);

imshow を使用してグレースケール イメージを表示します。

imshow(grayImage)

Figure contains an axes object. The axes object contains an object of type image.

バイナリ イメージの表示

しきい値処理を使用して、グレースケール イメージをバイナリ イメージに変換します。

meanVal = mean(grayImage,"all");
binaryImage = grayImage >= meanVal;

imshow を使用してバイナリ イメージを表示します。

imshow(binaryImage)

Figure contains an axes object. The axes object contains an object of type image.

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

サンプルのインデックス付きイメージ corn.tif を MATLAB ワークスペースに読み取ります。

[corn_indexed,map] = imread('corn.tif');

imshow を使用してインデックス付きイメージを表示します。

imshow(corn_indexed,map)

Figure contains an axes object. The axes object contains an object of type image.

ファイルに保存されているイメージを表示します。

imshow('peppers.png');

Figure contains an axes object. The axes object contains an object of type image.

サンプルのグレースケール ボリューム イメージ mri.mat をワークスペース内の変数 D に読み込みます。関数 squeeze を使用して、大きさが 1 の次元のボリュームを削除します。

load("mri.mat");
vol = squeeze(D);

ボリュームの中央からスライスを選択します。copper カラーマップを使用して表示範囲をピクセル値の範囲にスケーリングして、スライスを表示します。

sliceZ = vol(:,:,13);
imshow(sliceZ,[],Colormap=copper)

Figure contains an axes object. The axes object contains an object of type image.

関数 colormap を使用してイメージのカラーマップを変更します。

colormap(hot)

Figure contains an axes object. The axes object contains an object of type image.

トゥルーカラー (RGB) イメージをワークスペースに読み取ります。イメージのデータ型は uint8 です。

RGB = imread('peppers.png');

イメージの緑のチャネルを抽出します。緑のチャネルは 2 番目の色平面です。

G = RGB(:,:,2);
imshow(G)

Figure contains an axes object. The axes object contains an object of type image.

イメージ内の水平エッジを検出するフィルターを作成します。

filt = [-1 -1 -1;0 0 0;1 1 1];

関数 filter2 を使用してイメージの緑のチャネルをフィルター処理します。これにより、最小値が -422 で最大値が 656 であるデータ型 double のイメージが得られます。フィルター処理されたイメージ内で値が大きなピクセルは、強いエッジを表します。

edgeG = filter2(filt,G);

imshow を使用して、フィルター処理されたイメージを既定の表示範囲で表示します。データ型 double のイメージの場合、既定の表示範囲は [0, 1] です。フィルター処理されたピクセル値が範囲 [0, 1] を超えているため、このイメージはモノクロに見えます。

imshow(edgeG)

Figure contains an axes object. The axes object contains an object of type image.

フィルター処理されたイメージを表示し、表示範囲をイメージ内のピクセル値にスケーリングします。グレースケール値の全範囲を使用してイメージが表示されます。

imshow(edgeG,[])

Figure contains an axes object. The axes object contains an object of type image.

グレースケール イメージを corn.tif ファイルから ワークスペースに読み取ります。このイメージのグレースケール バージョンはファイルの 2 番目のイメージです。

corn_gray = imread('corn.tif',2);

イメージのごく一部を選択します。imshow を使用して、詳細イメージを 100% の倍率で表示します。

corn_detail = corn_gray(1:100,1:100);
imshow(corn_detail)

Figure contains an axes object. The axes object contains an object of type image.

名前と値のペアの引数 'InitialMagnification' を使用して、イメージを 1000% の倍率で表示します。既定では、inshow はピクセル値の最近傍内挿を行います。イメージにはブロック アーティファクトがあります。

imshow(corn_detail,'InitialMagnification',1000)

Figure contains an axes object. The axes object contains an object of type image.

双一次内挿法を指定して、イメージを 1000% の倍率で表示します。イメージはより滑らかに表示されます。

imshow(corn_detail,'InitialMagnification',1000,'Interpolation',"bilinear")

Figure contains an axes object. The axes object contains an object of type image.

イメージをワークスペースに読み取ります。

I = imread('pout.tif');

イメージを表示します。座標軸の範囲はイメージのサイズを反映しています。

figure
imshow(I)

入力イメージに関連付けられた空間参照オブジェクトを作成します。参照オブジェクトを使用して、ワールド座標系の x 軸と y 軸の範囲を設定します。

RI = imref2d(size(I));
RI.XWorldLimits = [0 3];
RI.YWorldLimits = [2 5];

空間参照オブジェクトを指定して、イメージを表示します。x 軸と y 軸の範囲が変更されていることに注意してください。

figure
imshow(I,RI)

入力引数

すべて折りたたむ

入力グレースケール イメージ。行列として指定します。グレースケール イメージは任意の数値データ型にできます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

入力トゥルーカラー イメージ。m x n x 3 の配列として指定します。

データ型 single または double のトゥルーカラー イメージを指定する場合、値は [0, 1] の範囲でなければなりません。ピクセル値がこの範囲外の場合、関数 rescale を使用して、ピクセル値を範囲 [0, 1] にスケーリングできます。入力イメージがトゥルーカラーの場合、引数 'DisplayRange' は効果がありません。

データ型: single | double | uint8 | uint16

入力バイナリ イメージ。行列として指定します。

データ型: logical

インデックス付きイメージ。正の整数の 2 次元行列として指定します。X の値は map で指定するカラーマップのインデックスです。

データ型: single | double | uint8 | logical

インデックス付きイメージ X に関連付けられたカラーマップ。c 行 3 列の行列として指定します。map の各行は、カラーマップの単一色を構成する赤、緑、青の成分を指定する 3 要素の RGB 3 成分です。map のデータ型が single または double の場合、行列の値は [0, 1] の範囲内となります。

データ型: single | double | uint8

ファイル名。文字ベクトルとして指定します。イメージは関数 imread によって読み取り可能でなければなりません。関数 imshow はイメージを表示しますが、イメージ データを MATLAB® ワークスペース内に保存しません。ファイルに複数のイメージが含まれている場合、imshow はファイル内の最初のイメージを表示します。

例: 'peppers.png'

データ型: char

グレースケール イメージの表示範囲。2 要素ベクトルとして指定します。詳細については、名前と値のペアの引数 'DisplayRange' を参照してください。

例: [50 250]

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

入力イメージに関連付けられている 2 次元空間参照オブジェクトであり、imref2d オブジェクトとして指定します。

インデックス付きイメージに関連付けられている 2 次元空間参照オブジェクトであり、imref2d オブジェクトとして指定します。

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して名前と値の各ペアを区切り、Name を引用符で囲みます。

例: imshow('board.tif','Border','tight')

Figure ウィンドウの境界スペース。'Border''tight' または 'loose' で構成されるコンマ区切りのペアとして指定します。'loose' に設定した場合、Figure ウィンドウ内のイメージの周囲にスペースが追加されます。'tight' に設定した場合、Figure ウィンドウ内のイメージの周囲にスペースは追加されません。

イメージが非常に小さい場合、またはイメージとその座標軸以外のオブジェクトが Figure に含まれている場合、imshow は、このパラメーターの設定内容にかかわらず境界線を使用する場合があります。

データ型: char

座標軸のカラーマップ。'Colormap'、および範囲 [0, 1] の値をもつ c 行 3 列の行列で構成される、コンマ区切りのペアとして指定します。行列の各行は、カラーマップの単一色を構成する赤、緑、青の成分を指定する 3 要素の RGB 3 成分です。フォールス カラーでグレースケール イメージを表示するには、この引数を使用してください。空のカラーマップ ([]) を指定すると、関数 imshow はこの引数を無視します。

例: cmap = copper; imshow('board.tif','Colormap',cmap)

データ型: double

グレースケール イメージの表示範囲。[low high] の形式の 2 要素ベクトルとして指定します。関数 imshow は、値 low (および low よりも小さいすべての値) を黒で、値 high (および high よりも大きいすべての値) を白で表示します。lowhigh の間の値は、既定数のグレー レベルを使用して、中間のグレー階調で表示されます。

空行列 ([]) を指定した場合、imshow[min(I(:)) max(I(:))] の表示範囲を使用します。つまり、I の最小値は黒で、最大値は白です。

表示範囲を指定しない場合、imshow はイメージのデータ型に基づいて既定の表示範囲を選択します。

  • I が整数型の場合、DisplayRange はその整数クラスで表現可能な値の既定の最小値と最大値に設定されます。たとえば、uint16 配列の既定の表示範囲は [0, 65535] になります。

  • I のデータ型が single または double の場合、既定の表示範囲は [0, 1] です。

メモ

ファイル名でイメージを指定する場合を除いて、パラメーター名の入力はオプションです。構文 imshow(I,[low high]) は、imshow(I,'DisplayRange',[low high]) と等価です。imshow をファイル名と共に呼び出す場合は、'DisplayRange' パラメーターを指定しなければなりません。

例: 'DisplayRange',[10 250]

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

イメージ表示の初期倍率。'InitialMagnification' と数値スカラーまたは 'fit' で構成されるコンマ区切りのペアとして指定します。100 に設定すると、imshow は、100% の倍率 (イメージ ピクセルごとに 1 つのスクリーン ピクセル) でイメージを表示します。'fit' に設定すると、imshow はイメージ全体をウィンドウに合わせてスケーリングします。

最初に、imshow は、指定された倍率でイメージ全体の表示を試みます。倍率の値が、イメージをスクリーン上に表示するには大きすぎる場合、imshow は、スクリーンに収まる最も大きな倍率でイメージを表示します。

'WindowStyle' プロパティが 'docked' に設定されている Figure にイメージが表示される場合、imshow は、Figure に収まる最大の倍率でイメージを表示します。

メモ: 座標軸の位置を指定すると、imshow は、指定されている初期の倍率を無視し、'fit' の動作を既定の設定にします。

imshow'Reduce' パラメーターと共に使用する場合、初期倍率は 'fit' でなければなりません。

MATLAB Online™ では、'InitialMagnification''fit' に設定されていて変更できません。

例: 'InitialMagnification',80

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char

内挿法。'nearest' または 'bilinear' として指定します。MATLAB は、スケーリングされたイメージを内挿を使用して画面に表示します。どの値を選択してもイメージ データには影響しません。イメージの内容および実現したい効果に基づいて内挿法を選択してください。

  • 'nearest' — 最近傍内挿。(x, y) にあるピクセルの値は、元のイメージで (x, y) の最も近くにあるピクセルの値です。この手法は、各カテゴリを表すピクセル値の数が少ない場合、または個々のピクセルを大きく拡大して表示する場合に最適です。

  • 'bilinear' — 双一次内挿。(x, y) にあるピクセルの値は、元のイメージの周囲ピクセルの加重平均です。関数 imshow は、表示のアーティファクトを最小限に抑えるため、イメージ縮小時にアンチエイリアシングを実行します。この手法は、その他のほとんどの場合に最適です。

image オブジェクトの親の座標軸。'Parent'Axes オブジェクトまたは UIAxes オブジェクトで構成されるコンマ区切りのペアとして指定します。名前と値の引数 'Parent' を使用して、Figure および Axes プロパティの制御を可能にする UI を作成します。

イメージのサブサンプリングのインジケーター。'Reduce'truefalse1 または 0 のいずれかで構成されるコンマ区切りのペアとして指定します。この引数は TIFF ファイルの名前と共に使用する場合にのみ有効です。非常に大きなイメージの概要を表示するために、Reduce 引数を使用します。

データ型: logical

既定以外の座標系の X 軸の範囲。'XData' と 2 要素ベクトルで構成されるコンマ区切りのペアとして指定します。この引数は、イメージ XData を指定することにより、既定ではない空間座標系を設定します。値には 2 つより多い要素を指定できますが、imshow は最初と最後の要素しか使用しません。

例: 'XData',[100 200]

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

既定以外の座標系の Y 軸の範囲。'YData' と 2 要素ベクトルで構成されるコンマ区切りのペアとして指定します。値には 2 つより多い要素を指定できますが、imshow は最初と最後の要素しか使用しません。

例: 'YData',[100 200]

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

出力引数

すべて折りたたむ

関数 imshow によって作成されるイメージ。1 つの image オブジェクトとして指定します。

ヒント

  • イメージを作成した後にカラーマップを変更するには、colormap コマンドを使用します。

  • 関数 imshow を関数 tiledlayout および nexttile と使用すると、異なるカラーマップをもつ複数イメージを同じ Figure に表示できます。

  • imshow の呼び出し後に hold on コマンドを使用することで、imshow によって作成された座標軸の上に座標軸を作成できます。

  • イメージの表示や一般的なイメージ処理タスクの実行のための統合環境として、イメージ ビューアー アプリを使用できます。

  • imshow の動作を変更する Image Processing Toolbox™ の基本設定を、関数 iptsetpref を使用して設定できます。

  • MATLAB を -nojvm オプションで起動した場合、関数 imshow はサポートされません。

拡張機能

バージョン履歴

R2006a より前に導入