主要内容

几何图2D

2-D几何转换对象

描述

一个几何图2D对象使用点映射功能定义自定义的二维几何变换。

创建

描述

例子

tform= geometrictransform2d(inverseFCN)创建一个几何图2D对象并设置逆映射inversefcn财产。

tform= geometrictransform2d(inverseFCN,forwardfcn)还设置了前向映射属性,forwardfcn

特性

展开全部

逆映射函数,指定为函数句柄。该功能应接受并返回坐标为n-b-2代表包装的数字矩阵(X,,,,y)坐标n点。

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

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

正向映射功能,指定为函数句柄。该功能应接受并返回坐标为n-b-2代表包装的数字矩阵(X,,,,y)坐标n点。

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

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

对象功能

转换点 应用前向几何变换
转换点融合 应用反向几何变换

例子

全部收缩

指定五个输入点的包装(x,y)坐标。包装的坐标存储在5 x-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 =函数_handle具有值:@(c)[c(:,1)+c(:,2),c(:,1)-c(:,2)]

创建一个二维几何变换对象,tform,存储逆映射函数。

tform =几何图transform2d(inverseFN)
tform =具有属性的deemogetrictransform2d:inverseFcn: @(c)[c(:1)+c(:,2),c(:,1)-c(:1)-c(:,2)] forfferfcn:[]维度:2

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

uv = transformpointsinverse(tform,xy)
UV =5×225 -5 43 -21 49 -19 9 -5 12 -8

指定五个点转换的X-和Y-Coordinates向量。

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

定义反向和正向映射功能。这两个功能都接受并以包装(x,y)格式的返回点。

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

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

tform = geometrictransform2d(inversefn,forwardfn)
tform = with属性:inversefcn: @(c)[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

将正向几何变换应用于转换点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)];

创建一个二维几何变换对象,tform,存储逆映射函数。

tform =几何图transform2d(inverseFN)
tform = with属性的几何图:inversefcn: @(xy)[xscale*xy(:,1),yscale*xy(:,2)] forfferfcn:[]维度:2

阅读要转换的图像。

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

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

利用IMWARP将逆几何变换应用于输入图像。图像垂直扩大了2倍(YSCALE),水平为10/3(逆XScale)。

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

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

定义一个接受包装(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);

创建一个二维几何变换对象,tform,存储逆映射函数。

tform = deemogemtransform2d(g);

阅读要转换的颜色图像。

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

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

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

rin = imref2d(size(i),[ -  1 1],[ -  1 1]);dout = imref2d(size(i),[ -  1 1],[ -  1 1]);

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

itransformed = imwarp(i,rin,tform,'outputview',Rout);imshow(iTransformed)

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

版本历史记录

在R2018B中引入