メインコンテンツ

イメージを Figure ウィンドウに表示

概要

imshow 関数は、2 次元イメージの基本的な表示に適しています。R2024b 以降では、imageshow 関数を使用して 2 次元イメージを表示することもできます。どちらの関数も Figure ウィンドウにイメージを表示できますが、それぞれに異なる用途に適したいくつかの重要な違いがあります。

imshow には次のような利点があります。

  • 座標軸内にイメージを表示します。これは MATLAB® グラフィックス関数を使用してカスタマイズできます。たとえば、tiledlayout を使用して複数のイメージを一緒に表示したり、タイトル、軸ラベル、およびデータ ヒントなどの注釈を追加したりできます。

  • Figure からのイメージの保存や印刷などの一般的な操作を実行できる既定のメニューとツール バーを使用して、Figure ウィンドウにイメージを表示します。

imageshow 関数には次のような利点があります。

  • 特に中程度のイメージや大きなイメージに対して、また MATLAB Online™ において、レンダリング品質の向上、パフォーマンスの高速化、滑らかなズームおよびパン操作を実現するように設計されています。

  • メモリに収まらないほど大きいファイル バックアップ イメージを含む、数値配列またはブロック化されたイメージとして保存されたイメージ データを表示できます。

  • ズームインすると、imshow よりも大きな画面で Figure ウィンドウ全体にイメージが表示されます。

メモ

ライブ エディターでイメージを表示する場合、Figure がライブ スクリプトの出力に埋め込まれます。Figure を別のウィンドウで開くには、ライブ エディター出力の右上隅にある [Figure ウィンドウで開く] ボタン Open in figure window button をクリックします。

imshow を使用したイメージの表示

ワークスペースにイメージを読み取り、imshow 関数を使用して表示します。

moon = imread("moon.tif");
imshow(moon)

Grayscale image in a figure window

表示するイメージをファイル名として指定することもできます。ただし、この構文ではイメージ データがワークスペースに保存されないことに注意してください。ワークスペースにイメージを取り込むには、現在の image オブジェクトからイメージ データを取得する関数 getimage を使用しなければなりません。

imshow("moon.tif");

imshow を使用して、ツールボックスでサポートされるさまざまなイメージ タイプを表示する方法の詳細については、さまざまなイメージ タイプの表示を参照してください。

イメージの初期倍率の指定

既定の設定では、imshow は、100% の倍率 (イメージ ピクセルごとに 1 つのスクリーン ピクセル) でイメージ全体を表示しようとします。ただし、イメージが大きすぎて 100% の倍率では画面上の Figure ウィンドウに収まらない場合、imshow は、画面に収まるようにイメージをスケールし、警告メッセージを発行します。

imshow の特定の呼び出しで、既定の初期倍率の動作をオーバーライドするには、InitialMagnification パラメーターを指定します。たとえば、150% の倍率でイメージを表示するには、次のコードを使用します。

pout = imread("pout.tif");
imshow(pout,InitialMagnification=150)

imshow は、指定した倍率を守ろうとします。ただし、その倍率ではイメージが画面に収まらない場合、imshow は画面に合わせてイメージをスケールします。初期倍率の値として "fit" を指定することもできます。その場合、imshow は Figure ウィンドウの現在のサイズに合わせてイメージをスケールします。

imshow の既定の初期倍率の動作を変更するには、ImshowInitialMagnification ツールボックスの基本設定を設定します。基本設定を設定するには、iptprefs を呼び出すか、MATLAB [ホーム] タブの [環境] セクションで [基本設定] をクリックして、Image Processing Toolbox™ の [基本設定] ダイアログ ボックスを開きます。

imshow はイメージをスケールするときに、内挿を使用して、イメージ行列内の要素とは直接対応しないスクリーン ピクセルの値を決定します。既定では、imshow は最近傍内挿を使用しますが、名前と値の引数 Interpolation を設定することで、双一次内挿の使用を指定できます。

Figure の外観の制御

既定の設定では、imshow は Figure にイメージを表示する際、グレーの境界線でイメージを囲みます。次の例に示すように、名前と値の引数 "Border" を使用すると、この既定の設定を変更して境界線を非表示にできます。

imshow("moon.tif",Border="tight")

次の図は、同じイメージに境界線を加えた場合と加えていない場合を示しています。

Grayscale image in a figure window with a gray border surrounding the image.

"Border" 引数は、imshow の呼び出しで表示されるイメージのみに影響します。imshow を使用して表示するすべてのイメージが、グレーの境界線なしで表示されるようにするには、Image Processing Toolbox "ImshowBorder" 基本設定を "tight" に設定します。さらに、基本設定を使用して可視化した軸を Figure に含めることもできます。基本設定の詳細については、iptprefs を参照してください。

imageshow を使用したイメージの表示

この例では、同じイメージをワークスペースに読み取り、imageshow 関数を使用してイメージを Figure ウィンドウに表示します。

moon = imread("moon.tif");
imageshow(moon)

Grayscale image displayed using imageshow

imshow と同様に、表示するイメージをファイル名として指定することもできます。

imageshow("moon.tif");

imageshow 関数は、イメージをビューアー ウィンドウに表示します。イメージのズーム レベルはビューアーの右下隅に表示されます。表示イメージのサイズを大きくするには、ビューアーを最大化するか、手動でビューアーの端をドラッグしてウィンドウを拡大します。マウスのスクロール ホイールまたはツール バーのズーム ボタンを使用してズームインすると、イメージがビューアー ウィンドウ全体に拡大されます。スケール バーが更新され、現在のズーム レベルが表示されます。

Grayscale image in an enlarged viewer window and zoomed in

低いズーム レベルと高いズーム レベルでのレンダリング品質を最適化するために、イメージ内挿方法が自動的に変更されます。低いズーム レベルでは、イメージ データの 1 ピクセルが 10 スクリーン ピクセルに満たない場合、イメージは双一次内挿を使用して表示されます。1 つのイメージ データ ピクセルが 10 を超えるスクリーン ピクセルにまたがる場合、イメージは最近傍内挿を使用して表示されます。名前と値の引数 Interpolation を使用して、内挿を手動で変更できます。

Animation showing the impact of image zoom level on the display interpolation method

参考

| |

トピック