Graphics | ![]() ![]() |
縦横比と表示サイズのコントロール
image
関数は、デフォルトサイズのFigureとAxesにイメージを表示します。MATLABは、イメージを引き伸ばしたり、縮小して表示領域に適合するようにします。表示の縦横比をイメージデータ行列の縦横比に一致させたい場合があります。このための最も簡単な方法は、コマンドaxis
image
による方法です。
たとえば、つぎのコマンドはデフォルトのFigureとAxes位置を使って、demos
ディレクトリにある地球のイメージearth
を表示します。
load earth image(X); colormap(map)
axesの位置に合わせてイメージ表示を引き伸ばした結果、得られた地球は若干引き伸ばされた形となります。axis
image
コマンドを使って、縦横比を1:1にします。
axis image
コマンドaxis
image
は、AxesオブジェクトのDataAspectRatio
プロパティを[1 1 1]に設定します。Axesオブジェクトの外観を制御する方法の詳細については、オンラインのMATLAB Function Referenceのaxis
、および、axes
コマンドを参照してください。
データ行列の各要素が1つのスクリーンピクセルに対応するように、イメージを表示したい場合があります。行列要素とスクリーンピクセルを一対一に写像してイメージを表示するためには、FigureとAxesのサイズを変更する必要があります。たとえば、つぎのコマンドは、1つのデータ要素が1つのスクリーンピクセルに対応するように地球のイメージを表示します。
[m,n] = size(X); figure('Units','pixels','Position',[100 100 n m]) image(X); colormap(map) set(gca,'Position',[0 0 1 1])
FigureのPosition
プロパティは、スクリーン上のFigureの位置とそのサイズを設定する4要素のベクトルです。上の2番目のステートメントは、Figureの左下隅がスクリーン上の位置(100,100)になり、その幅と高さがイメージの幅と高さに一致するように、Figureの位置を決めます。Axesの位置を正規化した単位で[0 0 1 1]に設定すると、Figure一杯になるAxesが生成されます。結果として得られる図は、つぎのとおりです。
![]() | イメージタイプと表示方法のまとめ | Imageオブジェクトとそのプロパティ | ![]() |