要执行2-D或3-D几何转换,首先创建存储有关转换的信息的几何转换对象。然后,将要变换的图像和几何变换对象传递给imwarp.
功能。您可选择提供有关输入图像的空间引用信息imwarp.
。
不同类型的几何变换对象存储有关转换的不同信息。
这rigid2d.
那Affine2d.
那Projective2d.
那rigid3d.
,Affine3d.
对象存储转换矩阵。
这geometricTransform2d
和geometricTransform3d
对象存储逆点明智的映射函数,以及可选的前向点映射函数。
其他转换类型,包括localweightedmeantransformation2d.
那PiewiselinearTransformation2d.
,PolynomialTransformation2D
对象,存储控制点对之间的映射。
有几种方法可以创建一个几何变换对象。
创建转换对象的方法 | Affine2d. |
Affine3d. |
|
Projective2d. |
|
其他转换对象 |
---|---|---|---|---|---|---|
定义变换矩阵 | 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
如果你有一个逆点映射函数,那么你可以定义一个定制的二维和三维几何变换geometricTransform2d
和geometricTransform3d
分别对象。
以下示例指定了接受并返回Packed中的2-D点的逆映射函数(X那y) 格式。然后,该示例创建了一个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点的逆映射函数(X那y那Z.) 格式。
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.
使用坐标映射在输入图像中插入像素值并计算输出像素值。
imwarp.
|fitgeotrans
|Affine2d.
|Affine3d.
|rigid2d.
|rigid3d.
|Projective2d.
|geometricTransform2d
|geometricTransform3d