Main Content

imshow

説明

imshow(I) はグレースケール イメージ I を図に表示します。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) はトゥルーカラー イメージ RGB を図に表示します。

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

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

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

imshow(___,Name=Value) は、名前と値の引数を使用して演算の要素を制御し、イメージを表示します。

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

すべて折りたたむ

関数 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.

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

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

grayImage = im2gray(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.

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

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

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% の倍率でイメージを表示します。既定では、imshow はピクセル値の最近傍点による内挿を実行します。イメージにはブロック アーティファクトがあります。

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.

入力引数

すべて折りたたむ

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

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

トゥルーカラー イメージ。m×n×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 の各行は、カラーマップの各色を構成する赤、緑、青の成分を指定する 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

名前と値の引数

引数のオプションのペアを 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 列の行列として指定します。行列の各行は、カラーマップの各色を構成する赤、緑、青の成分を指定する 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] であるとします。

  • Isingle データ型または 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 によって作成されたイメージ。image オブジェクトとして指定します。

ヒント

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

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

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

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

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

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

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する