transformPointsInverse
应用逆几何变换
语法
描述
例子
应用二维几何变换的逆变换
定义一个3 × 3的几何变换矩阵。这个例子指定了一个由垂直剪切和水平拉伸组成的仿射变换矩阵。
A = [1.5 0 0;0.8 - 1 0;0 0 1);
创建一个affinetform2d
对象从变换矩阵。
tform = affinetform2d(一个);
对一个点进行几何反变换。
x = 7.5;y = 14;(u, v) = transformPointsInverse (tform, x, y)
u = 5
v = 10
使用自定义2-D转换包装坐标
指定五个输入点的包装(x,y)坐标。打包的坐标存储在一个5乘2的矩阵中,其中x-坐标在第一列,而y-坐标在第二列中。
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与价值:@ (c) [c (: 1) + c (:, 2), c (: 1) - c (:, 2))
创建一个二维几何变换对象,tform
,它存储了逆映射函数。
tform = geometricTransform2d (inversefn)
InverseFcn: @(c)[c(:,1)+c(:,2),c(:,1)-c(:,2)] ForwardFcn:[]维度:2
对输入点应用几何反变换。
紫外线= transformPointsInverse (tform XY)
紫外线=5×225 -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
使用自定义3-D转换填充坐标
指定打包的(x,y,z)五个输入点的坐标。打包的坐标存储为5 × 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];
创建一个三维几何变换对象,tform
,它存储了这个逆映射函数。
tform = geometricTransform3d (inverseFcn)
tform = geometricTransform3d属性:InverseFcn: @ (c) [c (: 1) + c (:, 2), c (: 1) - c (:, 2), c(:, 3)。^2]向前的fcn:[]维度:3
将这个三维几何变换的逆变换应用到输入点上。
UVW = transformPointsInverse (tform XYZ)
UVW =5×330 -20 400 15 5 625 25 5 25 35 5 100 45 5 225
输入参数
tform
- - - - - -几何变换
几何变换对象
几何变换,指定为表中列出的几何变换对象。
几何变换对象 | 描述 |
---|---|
二维线性几何变换 | |
transltform2d |
翻译转换 |
rigidtform2d |
刚变换:平移和旋转 |
simtform2d |
相似变换:平移、旋转和各向同性标度 |
affinetform2d |
仿射变换:平移、旋转、非各向同性标度、反射和剪切 |
projtform2d |
射影变换 |
三维线性几何变换 | |
transltform3d |
翻译转换 |
rigidtform3d |
刚变换:平移和旋转 |
simtform3d |
相似变换:平移、旋转和各向同性标度 |
affinetform3d |
仿射变换:平移、旋转、非各向同性标度、反射和剪切 |
非线性几何转换 | |
geometricTransform2d |
使用逐点映射函数自定义二维几何变换 |
geometricTransform3d |
使用点映射函数自定义3-D几何变换 |
LocalWeightedMeanTransformation2D |
二维局部加权均值变换 |
PiecewiseLinearTransformation2D |
二维分段线性变换 |
PolynomialTransformation2D |
二维多项式变换 |
x
- - - - - -x-要转换的点的坐标
米——- - - - - -n或米——- - - - - -n——- - - - - -p数字数组
x要转换的点的坐标,指定为米——- - - - - -n或米——- - - - - -n——- - - - - -p数字数组。的维数x
的维度匹配tform
.
数据类型:单
|双
y
- - - - - -y-要转换的点的坐标
米——- - - - - -n或米——- - - - - -n——- - - - - -p数字数组
y要转换的点的坐标,指定为米——- - - - - -n或米——- - - - - -n——- - - - - -p数字数组。的大小y
必须匹配的尺寸x
.
数据类型:单
|双
X
- - - - - -要变换的点的坐标
l——- - - - - -2或l——- - - - - -3.数字数组
要转换的点的坐标,指定为l——- - - - - -2或l——- - - - - -3.数字数组。的列数X
的维度匹配tform
.
第一列列出x-坐标,第二列列出y协调。如果tform
表示一个三维几何变换,X
有大小l——- - - - - -3.第三列列出z要变换的点的-坐标。
数据类型:单
|双
输出参数
u
- - - - - -x-变换后的点坐标
米——- - - - - -n或米——- - - - - -n——- - - - - -p数字数组
x-转换后的点坐标,返回为米——- - - - - -n或米——- - - - - -n——- - - - - -p数字数组。的维数u
的维度匹配tform
.
数据类型:单
|双
v
- - - - - -y-变换后的点坐标
米——- - - - - -n或米——- - - - - -n——- - - - - -p数字数组
y-转换后的点坐标,返回为米——- - - - - -n或米——- - - - - -n——- - - - - -p数字数组。的大小v
的大小匹配u
.
数据类型:单
|双
w
- - - - - -z-变换后的点坐标
米——- - - - - -n——- - - - - -p数字数组
z-转换后的点坐标,返回为米——- - - - - -n——- - - - - -p数字数组。的大小w
的大小匹配u
.
数据类型:单
|双
版本历史
介绍了R2013aR2022b:支持新的几何变换对象
从R2022b开始,大多数图像处理工具箱™函数使用预乘法约定创建和执行几何变换。因此,您现在可以指定tform
作为使用前置乘法约定的几何变换对象,例如affinetform2d
对象。
虽然transformPointsInverse
仍然支持使用后乘约定的对象,例如affine2d
对象,不推荐使用这些对象。通过切换到新的几何变换对象,您可以简化几何变换工作流程。有关更多信息,请参见将几何变换迁移到预乘法约定.
对非线性几何变换对象的支持没有改变。
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。