要执行二维或三维几何变换,首先创建一个几何变换对象,该对象存储有关变换的信息。然后,将要变换的图像和几何变换对象传递给imwarp
函数。您还可以提供关于输入图像的空间引用信息imwarp
.
不同类型的几何变换对象存储了不同的变换信息。
的rigid2d
,affine2d
,projective2d
,rigid3d
,及affine3d
对象存储一个变换矩阵。
其他转换类型,包括LocalWeightedMeanTransformation2D
,PiecewiseLinearTransformation2D
,及多项式变换2D
对象,存储控制点对之间的映射。
有几种方法可以创建几何变换对象。
一种创建转换对象的方法 | 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 1 0 40 40 1];tform_translate = affine2d(变换)
tform_translate=affine2d,属性:T:[3x3双]维:2
如果具有逐点反向映射函数,则可以使用几何变换2D
和几何变换3D
对象分别。
下面的示例指定了一个逆映射函数,它接受并返回packed (x,y)的格式。然后,该示例创建几何变换2D
自定义几何变换对象。
逆链= @(c) [c(:,1)+c(:,2),c(:,1).^2]
inversefn = function_handle价值:@ (c) [c (: 1) + c (:, 2), c(: 1) ^ 2]。
tform=geometricTransform2d(inversefn)
tform=geometricTransform2d,属性为:InverseFcn:[函数句柄]ForwardFcn:[]维度:2
类似地,下面的示例创建几何变换3D
使用逆映射函数自定义几何变换对象。该示例指定了一个逆映射函数,该函数接受并返回packed (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)
ForwardFcn:[]维数:3
可以通过将两组控制点对传递给菲吉奥特兰斯
函数。的菲吉奥特兰斯
函数自动估计这些点的变换,并返回其中一个几何变换对象。
不同的转换需要不同数量的点。例如,仿射变换需要在每个图像中有三个非共线点(一个三角形),而射影变换需要四个点(一个四边形)。
此示例将两组控制点传递给菲吉奥特兰斯
,则返回affine2d
几何变换对象。
[11 11;21 11;21日21];fixedPoints = [51 51;61 51;61 61];tform_cpp = fitgeotrans (movingPoints定点,仿射的)
tform_cpp = affine2d with properties: T: [3x3 double] dimension: 2
如果你有一个固定的图像和一个稍微不对齐的移动图像,那么你可以使用imregtform
函数用于估计对图像进行对齐的仿射几何变换。imregtform
使用常规阶梯梯度下降或一加一进化优化器优化两幅图像的均方或蒙版互信息相似性度量。有关更多信息,请参阅为基于强度的图像配准创建优化器和度量.
如果你有一个固定的图像和一个严重错位的移动图像,那么你可以使用imregcorr
函数来估计改进图像对齐的仿射几何变换。您可以使用相似性优化来优化生成的变换。
在几何转换对象中定义转换之后,使用imwarp
函数。当调用函数时,指定要变换的图像和几何变换对象。
imwarp
使用几何变换将输出图像中的坐标映射到输入图像中相应的坐标(逆映射)。然后,imwarp
使用坐标映射在输入图像内插值像素值并计算输出像素值。
imwarp
|菲吉奥特兰斯
|affine2d
|affine3d
|rigid2d
|rigid3d
|projective2d
|几何变换2D
|几何变换3D