メインコンテンツ

transformPointsInverse

逆方向の幾何学的変換の適用

説明

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

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

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

すべて折りたたむ

3 行 3 列の幾何学的変換行列を定義します。この例では、垂直方向のせん断と水平方向の広がりから構成されるアフィン変換の行列を指定します。

A = [1.5 0 0; 0.8 1 0; 0 0 1];

変換行列から affinetform2d オブジェクトを作成します。

tform = affinetform2d(A);

点に逆方向の幾何学的変換を適用します。

x = 7.5;
y = 14;
[u,v] = transformPointsInverse(tform,x,y)
u = 
5
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

平行移動のみで構成される剛体幾何学的変換を定義します。

t = [10 20.5 15];
tform = transltform3d(t);

入力点に順方向の幾何学的変換を適用します。

x = 11;
y = 21.5;
z = 16.01;
[u,v,w] = transformPointsInverse(tform,x,y,z)
u = 
1
v = 
1
w = 
1.0100

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 次元線形幾何学的変換
transltform2d平行移動変換
rigidtform2d剛体変換: 平行移動と回転
simtform2d相似変換: 平行移動、回転、等方性スケーリング
affinetform2dアフィン変換: 平行移動、回転、異方性スケーリング、鏡映、せん断
projtform2d射影変換
3 次元線形幾何学的変換
transltform3d平行移動変換
rigidtform3d剛体変換: 平行移動と回転
simtform3d相似変換: 平行移動、回転、等方性スケーリング
affinetform3dアフィン変換: 平行移動、回転、異方性スケーリング、鏡映、せん断
非線形幾何学的変換
geometricTransform2d点単位のマッピング関数を使用したカスタム 2 次元幾何学的変換
geometricTransform3d点単位のマッピング関数を使用したカスタム 3 次元幾何学的変換
LocalWeightedMeanTransformation2D2 次元局所重み付き平均変換
PiecewiseLinearTransformation2D2 次元区分的線形変換
PolynomialTransformation2D2 次元多項式変換

メモ

tform は、タイプ rigid2drigid3daffine2daffine3d、または projective2d のオブジェクトとして指定することもできます。ただし、これらのオブジェクトは推奨されません。詳細については、バージョン履歴を参照してください。

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

データ型: single | double

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

データ型: single | double

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

データ型: single | double

変換する点の座標。l2 列または l3 列の数値配列として指定します。X の列数は tform の次元と一致します。

1 番目の列には変換する各点の x 座標がリストされ、2 番目の列には y 座標がリストされます。tform が 3 次元幾何学的変換を表す場合、X のサイズは l3 列となり、3 番目の列には変換する点の z 座標がリストされます。

データ型: single | double

出力引数

すべて折りたたむ

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

データ型: single | double

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

データ型: single | double

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

データ型: single | double

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

1 番目の列には変換後の各点の x 座標がリストされ、2 番目の列には y 座標がリストされます。tform が 3 次元幾何学的変換を表す場合、3 番目の列には変換後の点の z 座標がリストされます。

データ型: single | double

バージョン履歴

R2013a で導入

すべて展開する