Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

transformPointsInverse

幾何学的逆変換の適用

説明

[u,v] = transformPointsInverse(tform,x,y) は、2 次元幾何学的変換の逆変換 tform を座標 xy で指定した点に適用します。

[u,v,w] = transformPointsInverse(tform,x,y,z) は、3 次元幾何学的変換の逆変換 tform を座標 xy、および z で指定した点に適用します。

U = transformPointsInverse(tform,X) は、tform の逆変換を入力座標行列 X に適用し、座標行列 U を返します。transformPointsInverse は、k 番目の点 X(k,:) を点 U(k,:) にマッピングします。

すべて折りたたむ

変換を定義する affine2d オブジェクトを作成します。

theta = 10;

tform = affine2d([cosd(theta) -sind(theta) 0; sind(theta) cosd(theta) 0; 0 0 1])
tform = 

  affine2d with properties:

                 T: [3x3 double]
    Dimensionality: 2

2 次元幾何学的変換のフォワード変換を入力点に適用します。

[X,Y] = transformPointsForward(tform,5,10)
X =

    6.6605


Y =

    8.9798

前の手順で得た出力点に 2 次元幾何学的変換の逆変換を適用して、元の座標に戻します。

[U,V] = transformPointsInverse(tform,X,Y)
U =

    5.0000


V =

    10

5 つの入力点のパックされた (x,y) 座標を指定します。パックされた座標は 5 行 2 列の行列として格納します。ここで、各点の x 座標は最初の列に、各点の y 座標は 2 番目の列に入れます。

XY = [10 15;11 32;15 34;2 7;2 10];

逆マッピング関数を定義します。この関数はパックされた (x,y) 形式の点を受け入れ、同じ形式の点を返します。

inversefn = @(c) [c(:,1)+c(:,2),c(:,1)-c(:,2)]
inversefn = function_handle with value:
    @(c)[c(:,1)+c(:,2),c(:,1)-c(:,2)]

逆マッピング関数を格納する 2 次元幾何学的変換オブジェクト tform を作成します。

tform = geometricTransform2d(inversefn)
tform = 
  geometricTransform2d with properties:

        InverseFcn: @(c)[c(:,1)+c(:,2),c(:,1)-c(:,2)]
        ForwardFcn: []
    Dimensionality: 2

幾何学的逆変換を入力点に適用します。

UV = transformPointsInverse(tform,XY)
UV = 5×2

    25    -5
    43   -21
    49   -19
     9    -5
    12    -8

変換を定義する affine3d オブジェクトを作成します。

tform = affine3d([3 1 2 0;4 5 8 0;6 2 1 0;0 0 0 1])
tform = 

  affine3d with properties:

                 T: [4×4 double]
    Dimensionality: 3

3 次元幾何学的変換のフォワード変換を入力点に適用します。

[X,Y,Z] = transformPointsForward(tform,2,3,5)
X =

    48


Y =

    27


Z =

    33

前の手順で得た出力点に 3 次元幾何学的変換の逆変換を適用して、元の座標に戻します。

[U,V,W] = transformPointsInverse(tform,X,Y,Z)
U =

    2.0000


V =

     3


W =

    5.0000

5 つの入力点のパックされた (x,y,z) 座標を指定します。パックされた座標は 5 行 3 列の行列として格納します。ここで、1 番目、2 番目、3 番目の列には、それぞれ x 座標、y 座標、z 座標を格納します。

XYZ = [5 25 20;10 5 25;15 10 5;20 15 10;25 20 15];

パックされた (x,y,z) 形式の点を受け入れ、同じ形式の点を返す逆マッピング関数を定義します。

inverseFcn = @(c) [c(:,1)+c(:,2),c(:,1)-c(:,2),c(:,3).^2];

この逆マッピング関数を格納する 3 次元幾何学的変換オブジェクト tform を作成します。

tform = geometricTransform3d(inverseFcn)
tform = 
  geometricTransform3d with properties:

        InverseFcn: @(c)[c(:,1)+c(:,2),c(:,1)-c(:,2),c(:,3).^2]
        ForwardFcn: []
    Dimensionality: 3

この 3 次元幾何学的変換の逆変換を入力点に適用します。

UVW = transformPointsInverse(tform,XYZ)
UVW = 5×3

    30   -20   400
    15     5   625
    25     5    25
    35     5   100
    45     5   225

入力引数

すべて折りたたむ

幾何学的変換。幾何学的変換オブジェクトとして指定します。

2 次元幾何学的変換の場合、tformaffine2dprojective2dgeometricTransform2dLocalWeightedMeanTransformation2DPiecewiseLinearTransformation2D または PolynomialTransformation2D 幾何学的変換オブジェクトです。

3 次元幾何学的変換の場合、tformaffine3d オブジェクト、もしくは geometricTransform3d または rigid3d 幾何学的変換オブジェクトです。

変換される点の x 座標。m 行 n 列または m x n x p の数値配列として指定します。x の次元数は、tform の次元数に一致します。

データ型: single | double

変換される点の y 座標。m 行 n 列または m x n x p の数値配列として指定します。y のサイズは、x のサイズと一致しなければなりません。

データ型: single | double

変換される点の z 座標。m x n x p の数値配列として指定します。ztform が 3 次元幾何学的変換の場合にのみ使用されます。z のサイズは、x のサイズと一致しなければなりません。

データ型: single | double

変換される点の座標。l 行 2 列または l 行 3 列の数値配列として指定します。X の列数は、tform の次元数に一致します。

最初の列には、変換する各点の x 座標が一覧表示され、2 番目の列には y 座標が一覧表示されます。tform が 3 次元幾何学的変換を表す場合、X のサイズは l 行 3 列で、3 番目の列は変換する点の z 座標を一覧表示します。

データ型: single | double

出力引数

すべて折りたたむ

変換後の点の x 座標。m 行 n 列または m x n x p の数値配列として返されます。u の次元数は、tform の次元数に一致します。

データ型: single | double

変換後の点の y 座標。m 行 n 列または m x n x p の数値配列として返されます。v のサイズは、u のサイズと一致します。

データ型: single | double

変換後の点の z 座標。m x n x p の数値配列として返されます。w のサイズは、u のサイズと一致します。

データ型: single | double

変換後の点の座標。数値配列として返されます。U のサイズは、X のサイズと一致します。

最初の列には、変換後の各点の x 座標が一覧表示され、2 番目の列には y 座標が一覧表示されます。tform が 3 次元幾何学的変換を表す場合、3 番目の列は変換後の点の z 座標を一覧表示します。

データ型: single | double

R2013a で導入