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(Im,R) は、関連付けられている 2 次元空間参照オブジェクト R を用いてイメージ Im を表示します。最初の引数 Im は、グレースケール イメージ I、トゥルーカラー イメージ RGB、バイナリ イメージ BW、またはこれらのタイプのいずれかのイメージのファイル filename の名前です。

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

すべて折りたたむ

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

RGB イメージの表示

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

rgbImage = imread("peppers.png");

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

imshow(rgbImage)

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

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

grayImage = im2gray(rgbImage);

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

imshow(grayImage)

バイナリ イメージの表示

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

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

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

imshow(binaryImage)

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

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

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

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

imshow(corn_indexed,map)

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

filename = "peppers.png";
imshow(filename)

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

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

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

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

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

colormap(hot)

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

RGB = imread("peppers.png");

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

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

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

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)

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

imshow(edgeG,[])

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

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

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

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

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

imshow(corn_detail,InitialMagnification=1000)

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

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

グレースケール イメージをワークスペースに読み取ります。イメージを表示して、関数 imshow によって作成された Image オブジェクトを取得します。

I = imread("pout.tif");
hIm = imshow(I)

hIm = 
  Image with properties:

           CData: [291x240 uint8]
    CDataMapping: 'scaled'

  Use GET to show all properties

Image オブジェクトの XData および YData プロパティを表示します。座標軸の範囲にはイメージの空間範囲が表示されます。既定では、空間範囲はイメージのサイズに等しくなります。

spatialExtentIm = [hIm.XData; hIm.YData]
spatialExtentIm = 2×2

     1   240
     1   291

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

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

空間参照オブジェクトを指定して、イメージを表示します。関数 imshow によって作成された Image 空間参照オブジェクトを取得します。

hRef = imshow(I,RI);

Image 空間参照オブジェクトの XData および YData プロパティを表示します。座標軸の範囲は、空間参照オブジェクトによって指定されたワールド座標範囲内にあります。hRef.XDataRI.XWorldLimits (同様に、href.YDataRI.YWorldLimits) の違いは、前者ではエッジ ピクセルの中心間の距離が測定され、後者ではエッジ ピクセルの外側の境界間の距離が測定されるために発生します。

spatialExtentRef = [hRef.XData; hRef.YData]
spatialExtentRef = 2×2

    0.0063    2.9937
    2.0052    4.9948

入力引数

すべて折りたたむ

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

データ型: 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

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

例: "peppers.png"

データ型: string | char

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

例: [50 250]

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

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

名前と値の引数

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

例: imshow("board.tif",Border="tight") は、Figure ウィンドウ内のイメージの周囲にスペースを追加せずにファイル名 board.tif のイメージを表示します。

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

例: imshow("board.tif","Border","tight") は、Figure ウィンドウ内のイメージの周囲にスペースを追加せずにファイル名 board.tif のイメージを表示します。

Figure ウィンドウの境界スペース。"tight" または "loose" を指定します。"loose" に設定した場合、Figure ウィンドウ内のイメージの周囲にスペースが追加されます。"tight" に設定した場合、Figure ウィンドウ内のイメージの周囲にスペースは追加されません。

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

データ型: char

座標軸のカラーマップ。範囲 [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

イメージ表示の初期倍率。数値スカラーまたは "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 オブジェクトの親の座標軸。Axes オブジェクトまたは UIAxes オブジェクトとして指定します。名前と値の引数 Parent を使用して、Figure および Axes プロパティの制御を可能にする UI を作成します。

イメージのサブサンプリングのインジケーター。数値または logical の true (1) または false (0) として指定します。この引数は TIFF ファイルの名前と共に使用する場合にのみ有効です。非常に大きなイメージの概要を表示するために、Reduce 引数を使用します。

データ型: logical

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

例: XData=[100 200]

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

既定以外の座標系の Y 軸の範囲。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 はサポートされません。

  • ライブ エディターでは Figure のタイトルが途切れて表示されることがあります。タイトル全体が表示されるようにするには、親座標軸オブジェクトの PositionContraint プロパティを "outerposition" に設定します。プロパティ値は、関数 imshow より後、関数 title より前に更新します。

    I = imread("peppers.png");
    imshow(I)
    ax = gca;
    ax.PositionConstraint = "outerposition";
    title("Peppers");
    名前と値の引数 Parent を使用して親座標軸を指定する場合は、指定した親座標軸オブジェクトの PositionConstraint プロパティを設定します。座標軸位置のプロパティの詳細については、座標軸のレイアウトの制御を参照してください。

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する