主要内容

二维和三维几何变换过程概述

要执行2-D或3-D几何转换,首先创建存储有关转换的信息的几何转换对象。然后,将要变换的图像和几何变换对象传递给imwarp.功能。您可选择提供有关输入图像的空间引用信息imwarp.

创建几何变换对象

不同类型的几何变换对象存储有关转换的不同信息。

有几种方法可以创建一个几何变换对象。

创建转换对象的方法 Affine2d. Affine3d.

rigid2d.

rigid3d.

Projective2d.

geometricTransform2d

geometricTransform3d

其他转换对象
定义变换矩阵 X X X X
定义自定义点映射函数 X
从控制点对估计变换 X X X
使用相似性优化估算转换 X X
使用相位相关估计变换 X

定义变换矩阵

如果你知道你要做的几何变换的变换矩阵,那么你可以创建一个rigid2d.Affine2d.Projective2d.rigid3d., 或者Affine3d.几何变换对象直接。有关创建转换矩阵的详细信息,请参阅几何变换的矩阵表示

以下示例定义了2-D翻译的转换矩阵,并创建一个Affine2d.几何变换对象。

XForm = [1 0 0 0 1 0 40 40 4];tform_translate = Affine2d(XForm)
tform_translate = affine2d with properties: T: [3x3 double] dimension: 2

定义自定义点映射函数

如果你有一个逆点映射函数,那么你可以定义一个定制的二维和三维几何变换geometricTransform2dgeometricTransform3d分别对象。

以下示例指定了接受并返回Packed中的2-D点的逆映射函数(Xy) 格式。然后,该示例创建了一个geometricTransform2d自定义几何变换对象。

Inversefn = @(c)[c(:,1)+ c(:,2),c(:,1)。^ 2]
Inversefn = function_handle具有值:@(c)[c(:,1)+ c(:,2),c(:,1)。^ 2]
tform = geometricTransform2d (inversefn)
ForwardFcn:[]维数:2

同样,以下示例创建一个geometricTransform3d使用逆映射函数自定义几何变换对象。该示例指定了接受并返回Packed中的3-D点的逆映射函数(XyZ.) 格式。

InverseFn = @(c)[c(:,1)+ c(:,2),c(:,1)-c(:,2),c(:,3)。^ 2]
Inversefn = function_handle具有值:@(c)[c(:,1)+ c(:,2),c(:,1)-c(:,2),c(:,3)。^ 2]
tform = geometrictransform3d(Inversefn)
TForm = GeometricTransform3D具有属性:InverseFcn:[Function_Handle] ForwardFCN:[]维度:3

从控制点对估计变换

您可以通过将两组控制点对传递给的几何变换对象fitgeotrans功能。这fitgeotrans功能自动估计来自这些点的转换,并返回一个几何变换对象。

不同的变换需要不同数量的点。例如,仿射变换需要每个图像中的三个非共线点(三角形),并且投影变换需要四个点(四边形)。

这个示例将两组控制点传递给fitgeotrans,它返回一个Affine2d.几何变换对象。

移动点= [11 11; 21 11;21 21];固定点= [51 51; 61 51; 61 61];tform_cpp = fitgeokotrans(移动点,固定点,'仿射'的)
TForm_CPP =带有属性的Affine2D:T:[3x3双]维度:2

使用相似性优化估算转换

如果您有一个固定的图像和一个稍微错位的移动图像,那么您可以使用imregtform.估计对准图像的仿射几何变换的功能。imregtform.使用常规的阶跃梯度下降或一加一进化优化器,优化两幅图像的均方或Mattes互信息相似性度量。有关更多信息,请参见为基于强度的图像配准创建优化器和度量

使用相位相关估计变换

如果您有一个固定的图像和一个严重错位的移动图像,那么您可以使用imregcorr.函数,用于估计改进图像对齐的仿射几何变换。您可以使用相似度优化来细化结果转换。

执行几何变换

在几何变换对象中定义转换后,使用使用的转换imwarp.功能。调用函数时,指定要转换的图像和几何变换对象。

imwarp.使用几何变换将输出图像中的坐标映射到输入图像中的对应坐标(逆映射)。然后,imwarp.使用坐标映射在输入图像中插入像素值并计算输出像素值。

也可以看看

||||||||

相关例子

更多关于