主要内容

本页翻译不是最新的。点击此处可查看最新英文版本。

fitgeotform2d

根据控制点对组进行二维几何变换拟合

自 R2022b 起

说明

tform = fitgeotform2d(movingPoints,fixedPoints,tformType) 根据控制点对组 movingPointsfixedPoints 进行 tformType 类型的线性几何变换拟合。

示例

tform = fitgeotform2d(movingPoints,fixedPoints,"polynomial",degree) 根据控制点对组 movingPointsfixedPoints 进行 degree 次多项式变换拟合。指定多项式变换的次数 degree,可以是 2、3 或 4。

tform = fitgeotform2d(movingPoints,fixedPoints,"pwl") 根据控制点对组 movingPointsfixedPoints 进行分段线性变换拟合。这种变换会创建固定控制点的 德劳内三角剖分,并将运动控制点映射到对应的固定控制点。不同仿射变换映射每个局部区域中的控制点。映射在控制点上是连续的,但不是连续可微分的。

tform = fitgeotform2d(movingPoints,fixedPoints,"lwm",n) 根据控制点对组 movingPointsfixedPoints 进行局部加权均值变换拟合。局部加权均值变换通过使用相邻控制点在每个控制点上推断多项式来创建映射。在任何位置上的映射都取决于这些多项式的加权平均值。该函数使用 n 个最近点来推断每个控制点对组的二次多项式变换。

示例

全部折叠

创建棋盘图像,并将其旋转以创建未对齐的图像。

I = checkerboard(40);
J = imrotate(I,30);
imshowpair(I,J,"montage")

Figure contains an axes object. The hidden axes object contains an object of type image.

在固定图像(棋盘)和运动图像(旋转后的棋盘)上定义一些匹配的控制点。您可以使用“控制点选择”工具以交互方式定义点。

fixedPoints = [41 41; 281 161];
movingPoints = [56 175; 324 160];

创建一个可用于对齐两个图像的相似性几何变换。

tform = fitgeotform2d(movingPoints,fixedPoints,"similarity");

使用 tform 估计值对旋转后的图像重采样,将其与固定图像配准。假彩色叠加图像中的着色区域(绿色和品红色)表示配准错误。错误的原因是控制点之间缺乏精确的对应关系。

Jregistered = imwarp(J,tform,OutputView=imref2d(size(I)));
imshowpair(I,Jregistered)

Figure contains an axes object. The hidden axes object contains an object of type image.

输入参数

全部折叠

运动图像中的控制点,指定为 m×2 矩阵。每行指定一个控制点的 (x, y) 坐标。

变换类型会影响控制点对组的最小数量。例如,一个没有翻转的相似变换需要至少两个控制点对组。一个四次多项式变换需要至少 15 个控制点对组。有关详细信息,请参阅变换类型

示例: movingPoints = [11 11; 41 71];

数据类型: double | single

固定图像中的控制点,指定为 m×2 矩阵。每行指定一个控制点的 (x, y) 坐标。

示例: fixedPoints = [14 44; 70 81];

数据类型: double | single

线性变换的类型,指定为 "similarity""reflectivesimilarity""affine""projective"

数据类型: char | string

多项式的次数,指定为整数 234

用于局部加权均值计算的点数,指定为正整数。n 的最小值为 6,但 n 值较小时容易生成病态多项式。

输出参量

全部折叠

几何变换,以下表中定义的几何变换对象形式返回。

变换类型

几何变换对象
"similarity"simtform2d
"reflectivesimilarity"affinetform2d
"affine"affinetform2d
"projective"projtform2d
"polynomial"PolynomialTransformation2D
"pwl"PiecewiseLinearTransformation2D
"lwm"LocalWeightedMeanTransformation2D

详细信息

全部折叠

参考

[1] Goshtasby, Ardeshir. “Piecewise Linear Mapping Functions for Image Registration.” Pattern Recognition 19, no. 6 (January 1986): 459–66. https://doi.org/10.1016/0031-3203(86)90044-0.

[2] Goshtasby, Ardeshir. “Image Registration by Local Approximation Methods.” Image and Vision Computing 6, no. 4 (November 1988): 255–61. https://doi.org/10.1016/0262-8856(88)90016-9.

扩展功能

全部展开

版本历史记录

在 R2022b 中推出

全部展开