主要内容

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

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

创建几何变换对象

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

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

创建转换对象的方法 affine2d affine3d

rigid2d

rigid3d

projective2d

geometricTransform2d

geometricTransform3d

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

定义变换矩阵

如果你知道要进行的几何变换的变换矩阵,那么你就可以创建一个rigid2daffine2dprojective2drigid3d,或affine3d几何变换对象直接。有关创建转换矩阵的更多信息,请参见几何变换的矩阵表示法

下面的例子定义了二维转换的变换矩阵,并创建了一个affine2d几何变换对象。

Xform = [1 0 0 0 1 0 40 40 1];Tform_translate = affine2d(xform)
tform_translate = affine2d与属性:T: [3x3 double]维度:2

定义自定义逐点映射函数

方法定义自定义的2-D和3-D几何变换geometricTransform2dgeometricTransform3d对象分别。

下面的示例指定了一个逆映射函数,该函数接受并返回打包(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)
InverseFcn: [function_handle] ForwardFcn:[]维数:2

类似地,下面的示例创建一个geometricTransform3d使用逆映射函数自定义几何变换对象。该示例指定了一个逆映射函数,该函数接受并返回打包(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)
InverseFcn: [function_handle] ForwardFcn:[]维数:3

控制点对的估计变换

控件的两组控制点对可以创建几何转换对象fitgeotrans函数。的fitgeotrans函数自动从这些点估计转换,并返回一个几何转换对象。

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

本例将两组控制点传递给fitgeotrans,该函数返回affine2d几何变换对象。

movingPoints = [11 11;21 11;21日21];fixedPoints = [51 51;61 51;61 61];tform_cpp = fitgeotrans(移动点,fixedPoints,仿射的
tform_cpp = affine2d with properties: T: [3x3 double]维度:2

利用相似度优化估计变换

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

使用相位相关估计变换

如果固定图像和移动图像严重不对齐,则可以使用imregcorr函数估计仿射几何变换,改善图像对齐。您可以使用相似度优化来优化结果转换。

执行几何变换

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

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

另请参阅

||||||||

相关的例子

更多关于