主要内容

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

要执行二维或三维几何变换,首先创建一个几何变换对象,该对象存储有关变换的信息。然后,将要变换的图像和几何变换对象传递给imwarp函数。您还可以提供关于输入图像的空间引用信息imwarp

创建几何变换对象

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

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

一种创建转换对象的方法 affine2d affine3d

rigid2d

rigid3d

projective2d

几何变换2D

几何变换3D

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

定义变换矩阵

如果知道要执行的几何变换的变换矩阵,则可以创建rigid2daffine2dprojective2drigid3d,或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 (xy)的格式。然后,该示例创建几何变换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 (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)
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使用坐标映射在输入图像内插值像素值并计算输出像素值。

另请参阅

||||||||

相关的例子

更多关于