Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

axes2pix

座標軸座標をピクセル座標に変換

説明

pixelCoord = axes2pix(n,extent,axesCoord) は、座標軸座標を固有 (ピクセル) 座標に変換します。

メモ

imref2d オブジェクトには固有座標、ワールド座標と配列インデックスの間の変換を容易にする複数のメソッドがあります。

すべて折りたたむ

イメージを表示します。

h = imshow('pout.tif');

Figure contains an axes object. The axes object contains an object of type image.

イメージのサイズを取得します。

[nrows,ncols] = size(get(h,'CData'));

イメージの XData および YData を取得します。

xdata = get(h,'XData')
xdata = 1×2

     1   240

ydata = get(h,'YData')
ydata = 1×2

     1   291

x 次元と y 次元の座標軸座標を固有座標に変換します。

px = axes2pix(ncols,xdata,30)
px = 30
py = axes2pix(nrows,ydata,30)
py = 30

イメージを読み取り、それを表示します。イメージのサイズを取得します。

I = imread('pout.tif');
[nrows,ncols] = size(I)
nrows = 291
ncols = 240

このイメージに、既定のプロパティ設定で空間参照オブジェクトを作成します。既定では、イメージの左上隅が固有座標 (1,1) の位置になります。

RI = imref2d(size(I));
h = imshow(I,RI);

Figure contains an axes object. The axes object contains an object of type image.

xData = get(h,'XData')
xData = 1×2

     1   240

yData = get(h,'YData')
yData = 1×2

     1   291

説明をわかりやすくするために、x および y 方向で任意のイメージ範囲を指定します。この例ではイメージを上に 20 ピクセル、右に 400 ピクセル、シフトします。この例はさらに、右に 100 ピクセル、イメージをシフトし、水平方向に 2 の係数で圧縮します。

xWorldLimits = 0.5*xData + 400;
yWorldLimits = yData - 20;
RA = imref2d(size(I),xWorldLimits,yWorldLimits); 
imshow(I,RA)

Figure contains an axes object. The axes object contains an object of type image.

たとえば、子どもの鼻のそばにあるピクセルを選択します。このピクセルは、変更済みイメージの座標軸座標 (x, y) = (450, 90) のそばに相当します。

座標軸座標を固有座標に変換します。

px = axes2pix(ncols,xWorldLimits,450)
px = 100
py = axes2pix(nrows,yWorldLimits,90)
py = 110

ポイントの固有座標は (100, 110) です。これは元のイメージの鼻の場所と一致します。

入力引数

すべて折りたたむ

イメージの行数または列数。正の整数で指定します。nx 座標に対するイメージの列数か、y 座標に対するイメージの行数です。

イメージ ワールド範囲。2 要素の数値ベクトルとして指定します。extentget(image_handle,'XData') または get(image_handle,'YData') によって返されます。

固有座標に変換する座標軸座標。数値ベクトルとして指定します。

出力引数

すべて折りたたむ

固有座標。数値ベクトルとして返されます。

データ型: double

ヒント

  • axes2pix は、naxesCoordextent 引数の検証に関して最小限のチェックを行います。たとえば、axes2pixextent から外挿でき、負の座標を返します。axes2pix を呼び出す関数がエラー チェックを担当します。

バージョン履歴

R2006a より前に導入