主要内容

geometrictransform2d.

2-D几何变换对象

描述

一种geometrictransform2d.Object使用Point-Wise映射函数定义自定义2-D几何变换。

创建

描述

例子

tform.= geometrictransform2d(Inversefcn)创造一个geometrictransform2d.对象并设置逆映射inversefcn.财产。

tform.= GeometricTransform2D(Inversefcn,Fowardfcn)还设置前向映射属性,ForwardFCN.

特性

展开全部

逆映射函数,指定为函数句柄。该函数应该接受并将坐标作为一个返回N-By-2表示包装的数字矩阵(Xy)坐标N要点。

有关功能句柄的更多信息,请参阅创建功能句柄

例子:ifcn = @(xy)[xy(:,1)。^ 2,sqrt(xy(:,2))];

向前映射函数,指定为函数句柄。该函数应该接受并将坐标作为一个返回N-By-2表示包装的数字矩阵(Xy)坐标N要点。

有关功能句柄的更多信息,请参阅创建功能句柄

例子:ffcn = @(xy)[sqrt(xy(:,1)),(xy(:,2)。^ 2)];

对象功能

变换点前沿 应用前向几何变换
TransformPointsInverse. 应用逆几何变换

例子

全部收缩

指定五个输入点的Packed(x,y)坐标。包装坐标存储在5×2矩阵中,其中X每个点的科学都在第一列中,以及y- 每个点的科学都在第二列中。

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

定义逆映射函数。该函数接受并返回Packed(x,y)格式的点。

Inversefn = @(c)[c(:,1)+ c(:,2),c(:,1)-c(:,2)]
Inversefn =.function_handle具有值:@(c)[c(:,1)+ c(:,2),c(:,1)-c(:,2)]

创建一个2-D几何变换对象,tform.,存储逆映射函数。

tform = geometrictransform2d(Inversefn)
TForm = GeometricTransform2D具有属性:InverseFcn:@(c)[c(:,1)+ c(:,2),c(:,1)-c(:,2)]转福:[]维度:2

将逆几何变换应用于输入点。

UV = TransformPointsInverse(Tform,XY)
UV =5×225-5 43 -21 49 -19 9 -5 12 -8

指定五个点的X和Y坐标向转换。

x = [10 11 15 2 2];Y = [15 32 34 7 10];

定义逆向和正向映射函数。这两种功能都接受并返回Packed(x,y)格式的点。

InverseFn = @(c)[c(:,1)。^ 2,sqrt(c(:,2))];forwardfn = @(c)[sqrt(c(:,1)),c(:,2)。^ 2];

创建一个2-D几何变换对象,tform.,存储逆映射函数和可选的前向映射函数。

TForm = GeometricTransform2D(Inversefn,ForwardFN)
tform = geometrictransform2d with属性:Inversefcn:@(c)[c(:,1)。^ 2,sqrt(c(:,2))] forwardfcn:@(c)[sqrt(c(:,1)),C(:,2)。^ 2]维度:2

将逆几何变换应用于输入点。

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

将前向几何变换应用于转换点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

定义应用各向异性缩放的逆映射函数。该函数必须接受并返回包装(x,y)坐标,其中X每个点的科学都在第一列中,以及y- 每个点的科学都在第二列中。

Xscale = 0.3;yscale = 0.5;Inversefn = @(xy)[xscale * xy(:,1),yscale * xy(:,2)];

创建一个2-D几何变换对象,tform.,存储逆映射函数。

tform = geometrictransform2d(Inversefn)
TForm = GeometricTransform2D具有属性:Inversefcn:@(xy)[xscale * xy(:,1),yscale * xy(:,2)] forwardfcn:[]维度:2

读取要转换的图像。

我= imread('cameraman.tif');imshow(i)

图包含轴。轴包含类型图像的对象。

imwarp.将逆几何变换应用于输入图像。图像垂直幅度为2(逆)yscale.)水平10/3(反向)XScale.)。

iTransformed = imwarp(i,tform);imshow(iTransformed)

图包含轴。轴包含类型图像的对象。

定义接受Packed(X,Y)坐标的逆映射函数,其中X每个点的科学都在第一列中,以及y- 每个点的科学都在第二列中。该示例中的逆映射函数采用极性径向分量的平方。

r = @(c)sqrt(c(:,1)。^ 2 + c(:,2)。^ 2);w = @(c)atan2(c(:,2),c(:,1));f = @(c)[r(c)。^ 2。* cos(w(c)),r(c)。^ 2。* sin(w(c))];g = @(c)f(c);

创建一个2-D几何变换对象,tform.,存储逆映射函数。

tform = geometrictransform2d(g);

读取要转换的彩色图像。

我= imread('peppers.png');imshow(i)

图包含轴。轴包含类型图像的对象。

创建一个imref2d.对象,指定输入和输出图像的大小和世界限制。

rin = imref2d(尺寸(i),[ -  1 1],[ -  1 1]);rut = imref2d(大小(i),[ -  1 1],[ -  1 1]);

将逆几何变换应用于输入图像。

iTransformed = imwarp(i,rin,tform,'OutputView',溃败);imshow(iTransformed)

图包含轴。轴包含类型图像的对象。

在R2018B中介绍