主要内容

transformPointsForward

应用正向几何变换

描述

例子

xy= transformPointsForward(tformuv应用二维几何变换的正变换tform到坐标指定的点u而且v

xyz= transformPointsForward(tformuvw应用三维几何变换的正变换tform到坐标指定的点uv,w

X= transformPointsForward (tformU的正变换tform到输入坐标矩阵U并返回坐标矩阵XtransformPointsForward地图的kth点Uk)直截了当Xk).

例子

全部折叠

定义一个3 × 3的几何变换矩阵。这个例子指定了一个包含垂直剪切和水平拉伸的仿射变换矩阵。

A = [1.5 0 0;0.8 10 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,根号(c(:,2))];Forwardfn = @(c)[√(c(:,1)),c(:,2).^2];

创建一个二维几何变换对象,tform,它存储逆映射函数和可选的正向映射函数。

tform = geometricTransform2d(inversefn,forwardfn)
tform = geometricTransform2d属性:InverseFcn: @ (c) [c(: 1)。^ 2,sqrt (c (:, 2))] ForwardFcn: @ (c) [sqrt (c (: 1)), c(:, 2)。^2]维度:2

对输入点应用逆几何变换。

[u,v] = transformPointsInverse(tform,x,y)
u =1×5100 121 225 4 4
v =1×53.8730 5.6569 5.8310 2.6458 3.1623

对变换后的点应用正向几何变换u而且v

[x,y] = transformPointsForward(tform,u,v)
x =1×510 11 15 2 2
y =1×515.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

指定x- - - - - -,y-以及z-坐标向量的五个点进行变换。

X = [3 5 7 9 11];Y = [2 4 6 8 10];Z = [5 9 13 17 21];

定义反向和正向映射函数,它们接受和返回打包(xyz)的格式。

inverseFcn = @ (c) [c(: 1)。^ 2,c (:, 2) ^ 2, c(:, 3)。^ 2];forwardFcn = @ (c) [sqrt (c (: 1)), sqrt (c (:, 2)), sqrt (c (:, 3)));

创建一个三维几何变换对象,tform,存储这些反向映射函数和正向映射函数。

tform = geometricTransform3d(inverseFcn,forwardFcn)
tform = geometricTransform3d属性:InverseFcn: @(c)[c(:,1).^2,c(:,2).^2,c(:,3).]^ 2] ForwardFcn: @ (c) [sqrt (c (: 1)), sqrt (c (:, 2)), sqrt (c(:, 3)))维度:3

对输入点应用这个三维几何变换的逆变换。

[u,v,w] = transformPointsInverse(tform,x,y,z)
u =1×59 25 49 81 121
v =1×54 16 36 64 100
w =1×525 81 169 289 441

对变换后的点应用正向几何变换uv,w

[x,y,z] = transformPointsForward(tform,u,v,w)
x =1×53 5 7 9 11
y =1×52 4 6 8
z =1×55 9 13 17 21

输入参数

全部折叠

几何变换,指定为表中列出的几何变换对象。

几何变换对象 描述
二维线性几何变换
transltform2d 翻译转换
rigidtform2d 刚性变换:平移和旋转
simtform2d 相似度转换:平移、旋转和各向同性缩放
affinetform2d 仿射变换:平移、旋转、各向异性缩放、反射和剪切
projtform2d 射影变换
三维线性几何变换
transltform3d 翻译转换
rigidtform3d 刚性变换:平移和旋转
simtform3d 相似度转换:平移、旋转和各向同性缩放
affinetform3d 仿射变换:平移、旋转、各向异性缩放、反射和剪切
非线性几何变换
geometricTransform2d 使用逐点映射函数的自定义2-D几何变换
geometricTransform3d 使用逐点映射函数自定义3-D几何变换

请注意

你也可以指定tform作为类型的对象rigid2drigid3daffine2daffine3d,或projective2d.但是,不推荐使用这些对象。有关更多信息,请参见兼容性的考虑

x-要转换的点的坐标,指定为——- - - - - -n——- - - - - -n——- - - - - -p数字数组。的维数u的维度匹配tform

数据类型:|

y-要转换的点的坐标,指定为——- - - - - -n——- - - - - -n——- - - - - -p数字数组。的大小v一定要搭配大小的u

数据类型:|

z-要转换的点的坐标,指定为——- - - - - -n——- - - - - -p数字数组。w仅在以下情况下使用tform是一个三维几何变换。的大小w一定要搭配大小的u

数据类型:|

要转换的点的坐标,指定为l——- - - - - -2l——- - - - - -3.数字数组。的列数U的维度匹配tform

第一列列出x-坐标,第二列列出y协调。如果tform表示三维几何变换,U有大小l——- - - - - -3.第三列列出z-要变换点的坐标。

数据类型:|

输出参数

全部折叠

x-转换后的点坐标,返回为——- - - - - -n——- - - - - -n——- - - - - -p数字数组。的维数x的维度匹配tform

数据类型:|

y-转换后的点坐标,返回为——- - - - - -n——- - - - - -n——- - - - - -p数字数组。的大小y匹配的大小x

数据类型:|

z-转换后的点坐标,返回为——- - - - - -n——- - - - - -p数字数组。的大小z匹配的大小x

数据类型:|

转换后的点坐标,作为数字数组返回。的大小X匹配的大小U

第一列列出x变换后的每个点的-坐标,第二列列出y协调。如果tform表示三维几何变换,第三列列出z变换后点的-坐标。

数据类型:|

版本历史

在R2013a中引入

全部展开