イメージを Figure ウィンドウに表示
概要
imshow 関数は、2 次元イメージの基本的な表示に適しています。R2024b 以降では、imageshow 関数を使用して 2 次元イメージを表示することもできます。どちらの関数も Figure ウィンドウにイメージを表示できますが、それぞれに異なる用途に適したいくつかの重要な違いがあります。
imshow には次のような利点があります。
座標軸内にイメージを表示します。これは MATLAB® グラフィックス関数を使用してカスタマイズできます。たとえば、
tiledlayoutを使用して複数のイメージを一緒に表示したり、タイトル、軸ラベル、およびデータ ヒントなどの注釈を追加したりできます。Figure からのイメージの保存や印刷などの一般的な操作を実行できる既定のメニューとツール バーを使用して、Figure ウィンドウにイメージを表示します。
imageshow 関数には次のような利点があります。
特に中程度のイメージや大きなイメージに対して、また MATLAB Online™ において、レンダリング品質の向上、パフォーマンスの高速化、滑らかなズームおよびパン操作を実現するように設計されています。
メモリに収まらないほど大きいファイル バックアップ イメージを含む、数値配列またはブロック化されたイメージとして保存されたイメージ データを表示できます。
ズームインすると、
imshowよりも大きな画面で Figure ウィンドウ全体にイメージが表示されます。
メモ
ライブ エディターでイメージを表示する場合、Figure がライブ スクリプトの出力に埋め込まれます。Figure を別のウィンドウで開くには、ライブ エディター出力の右上隅にある [Figure ウィンドウで開く] ボタン
をクリックします。
imshow を使用したイメージの表示
ワークスペースにイメージを読み取り、imshow 関数を使用して表示します。
moon = imread("moon.tif");
imshow(moon)
表示するイメージをファイル名として指定することもできます。ただし、この構文ではイメージ データがワークスペースに保存されないことに注意してください。ワークスペースにイメージを取り込むには、現在の 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")
次の図は、同じイメージに境界線を加えた場合と加えていない場合を示しています。

"Border" 引数は、imshow の呼び出しで表示されるイメージのみに影響します。imshow を使用して表示するすべてのイメージが、グレーの境界線なしで表示されるようにするには、Image Processing Toolbox "ImshowBorder" 基本設定を "tight" に設定します。さらに、基本設定を使用して可視化した軸を Figure に含めることもできます。基本設定の詳細については、iptprefs を参照してください。
imageshow を使用したイメージの表示
この例では、同じイメージをワークスペースに読み取り、imageshow 関数を使用してイメージを Figure ウィンドウに表示します。
moon = imread("moon.tif");
imageshow(moon)
imshow と同様に、表示するイメージをファイル名として指定することもできます。
imageshow("moon.tif");imageshow 関数は、イメージをビューアー ウィンドウに表示します。イメージのズーム レベルはビューアーの右下隅に表示されます。表示イメージのサイズを大きくするには、ビューアーを最大化するか、手動でビューアーの端をドラッグしてウィンドウを拡大します。マウスのスクロール ホイールまたはツール バーのズーム ボタンを使用してズームインすると、イメージがビューアー ウィンドウ全体に拡大されます。スケール バーが更新され、現在のズーム レベルが表示されます。

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