このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
transformPointsForward
順方向の幾何学的変換の適用
構文
説明
例
3 行 3 列の幾何学的変換行列を定義します。この例では、垂直方向のせん断と水平方向の広がりから構成されるアフィン変換の行列を指定します。
A = [1.5 0 0; 0.8 1 0; 0 0 1];
変換行列から affinetform2d
オブジェクトを作成します。
tform = affinetform2d(A);
入力点に順方向の幾何学的変換を適用します。
u = 5; v = 10; [x,y] = transformPointsForward(tform,u,v)
x = 7.5000
y = 14
変換する 5 つの点の x 座標と y 座標のベクトルを指定します。
x = [10 11 15 2 2]; y = [15 32 34 7 10];
逆方向のマッピング関数と順方向のマッピング関数を定義します。どちらの関数もパックされた (x,y) 形式の点を受け入れ、同じ形式の点を返します。
inversefn = @(c) [c(:,1).^2,sqrt(c(:,2))]; forwardfn = @(c) [sqrt(c(:,1)),c(:,2).^2];
逆方向のマッピング関数とオプションの順方向のマッピング関数を格納する 2 次元幾何学的変換オブジェクト tform
を作成します。
tform = geometricTransform2d(inversefn,forwardfn)
tform = geometricTransform2d with properties: InverseFcn: @(c)[c(:,1).^2,sqrt(c(:,2))] ForwardFcn: @(c)[sqrt(c(:,1)),c(:,2).^2] Dimensionality: 2
逆方向の幾何学的変換を入力点に適用します。
[u,v] = transformPointsInverse(tform,x,y)
u = 1×5
100 121 225 4 4
v = 1×5
3.8730 5.6569 5.8310 2.6458 3.1623
順方向の幾何学的変換を変換後の点 u
と v
に適用します。
[x,y] = transformPointsForward(tform,u,v)
x = 1×5
10 11 15 2 2
y = 1×5
15.0000 32.0000 34.0000 7.0000 10.0000
平行移動のみで構成される剛体幾何学的変換を定義します。
t = [10 20.5 15]; tform = transltform3d(t);
入力点に順方向の幾何学的変換を適用します。
u = 1; v = 1; w = 1.01; [x,y,z] = transformPointsForward(tform,u,v,w)
x = 11
y = 21.5000
z = 16.0100
変換する 5 つの点の x 座標、y 座標、z 座標のベクトルを指定します。
x = [3 5 7 9 11]; y = [2 4 6 8 10]; z = [5 9 13 17 21];
パックされた (x,y,z) 形式の点を受け入れ、同じ形式の点を返す逆方向のマッピング関数と順方向のマッピング関数を定義します。
inverseFcn = @(c)[c(:,1).^2,c(:,2).^2,c(:,3).^2]; forwardFcn = @(c)[sqrt(c(:,1)),sqrt(c(:,2)),sqrt(c(:,3))];
これらの逆方向のマッピング関数と順方向のマッピング関数を格納する 3 次元幾何学的変換オブジェクト tform
を作成します。
tform = geometricTransform3d(inverseFcn,forwardFcn)
tform = geometricTransform3d with properties: InverseFcn: @(c)[c(:,1).^2,c(:,2).^2,c(:,3).^2] ForwardFcn: @(c)[sqrt(c(:,1)),sqrt(c(:,2)),sqrt(c(:,3))] Dimensionality: 3
この 3 次元幾何学的変換の逆変換を入力点に適用します。
[u,v,w] = transformPointsInverse(tform,x,y,z)
u = 1×5
9 25 49 81 121
v = 1×5
4 16 36 64 100
w = 1×5
25 81 169 289 441
順方向の幾何学的変換を変換後の点 u
、v
および w
に適用します。
[x,y,z] = transformPointsForward(tform,u,v,w)
x = 1×5
3 5 7 9 11
y = 1×5
2 4 6 8 10
z = 1×5
5 9 13 17 21
入力引数
幾何学的変換。表に記載されている幾何学的変換オブジェクトとして指定します。
幾何学的変換オブジェクト | 説明 |
---|---|
2 次元線形幾何学的変換 | |
transltform2d | 平行移動変換 |
rigidtform2d | 剛体変換: 平行移動と回転 |
simtform2d | 相似変換: 平行移動、回転、等方性スケーリング |
affinetform2d | アフィン変換: 平行移動、回転、異方性スケーリング、鏡映、せん断 |
projtform2d | 射影変換 |
3 次元線形幾何学的変換 | |
transltform3d | 平行移動変換 |
rigidtform3d | 剛体変換: 平行移動と回転 |
simtform3d | 相似変換: 平行移動、回転、等方性スケーリング |
affinetform3d | アフィン変換: 平行移動、回転、異方性スケーリング、鏡映、せん断 |
非線形幾何学的変換 | |
geometricTransform2d | 点単位のマッピング関数を使用したカスタム 2 次元幾何学的変換 |
geometricTransform3d | 点単位のマッピング関数を使用したカスタム 3 次元幾何学的変換 |
変換する点の x 座標。m 行 n 列または m×n×p の数値配列として指定します。u
の次元数は tform
の次元数と一致します。
データ型: single
| double
変換する点の y 座標。m 行 n 列または m×n×p の数値配列として指定します。v
のサイズは u
のサイズと一致しなければなりません。
データ型: single
| double
変換する点の座標。l 行 2 列または l 行 3 列の数値配列として指定します。U
の列数は tform
の次元と一致します。
1 番目の列には変換する各点の x 座標がリストされ、2 番目の列には y 座標がリストされます。tform
が 3 次元幾何学的変換を表す場合、U
のサイズは l 行 3 列となり、3 番目の列には変換する点の z 座標がリストされます。
データ型: single
| double
出力引数
バージョン履歴
R2013a で導入R2022b 以降、ほとんどの Image Processing Toolbox™ 関数は、左から乗算する規則を使用して幾何学的変換を作成し、実行します。そのため、tform
を、affinetform2d
オブジェクトなどの左から乗算する規則を使用する幾何学的変換オブジェクトとして指定できるようになりました。
以前は、線形幾何学的変換の場合、affine2d
オブジェクトなどの右から乗算する規則を使用する幾何学的変換オブジェクトとして tform
を指定していました。transformPointsForward
は右から乗算する規則を使用するオブジェクトを引き続き受け入れますが、これらのオブジェクトは推奨されません。詳細については、Migrate Geometric Transformations to Premultiply Conventionを参照してください。
非線形幾何学的変換のサポートに変更はありません。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)