Main Content

affinetform2d

二维仿射几何变换

自 R2022b 起

    说明

    affinetform2d 对象存储有关二维仿射几何变换的信息,并支持正向变换和逆变换。

    创建对象

    您可以通过以下方式创建 affinetform2d 对象:

    • imregtform - 使用相似性优化来估计将运动图像映射到固定图像的几何变换。

    • imregcorr - 使用相位相关性来估计将运动图像映射到固定图像的几何变换。

    • fitgeotform2d - 估计在两个图像之间映射成对控制点的几何变换。

    • randomAffine2d - 创建随机二维仿射变换。

    • 此处介绍的 affinetform2d 函数。

    描述

    tform = affinetform2d 创建一个用于执行恒等变换的 affinetform2d 对象。

    示例

    tform = affinetform2d(A) 创建一个 affinetform2d 对象并将属性 A 设置为指定的二维仿射变换矩阵。

    tform = affinetform2d(tformIn) 基于另一个几何变换对象 tformIn 创建一个 affinetform2d 对象,该对象表示有效的二维仿射几何变换。

    输入参量

    全部展开

    仿射二维几何变换,指定为 affinetform2d 对象、rigidtform2d 对象、simtform2d 对象、transltform2d 对象或 projtform2d 对象。

    属性

    全部展开

    正向二维仿射变换,指定为 3×3 数值矩阵。创建对象时,还可以将 A 指定为 2×3 数值矩阵。在这种情况下,该对象会将行向量 [0 0 1] 串联到矩阵的末尾,形成一个 3×3 矩阵。A 的默认值为单位矩阵。

    矩阵 A 使用以下约定将输入坐标空间中的点 (u, v) 转换为输出坐标空间中的点 (x, y):

    [xy1]=Α×[uv1]

    对于仿射变换,A 具有以下形式:

    Α=[abcdef001]

    数据类型: double | single

    此 属性 为只读。

    输入点和输出点的几何变换维度,指定为值 2

    对象函数

    invertInvert geometric transformation
    outputLimitsFind output spatial limits given input spatial limits
    transformPointsForwardApply forward geometric transformation
    transformPointsInverseApply inverse geometric transformation

    示例

    全部折叠

    定义一个 3×3 几何变换矩阵。此示例指定一个由垂直剪切和水平拉伸组成的仿射变换的矩阵。

    A = [2 0 0; 0.33 1 0; 0 0 1];

    基于该变换矩阵创建一个 affinetform2d 对象。

    tform = affinetform2d(A)
    tform = 
      affinetform2d with properties:
    
        Dimensionality: 2
    
                     A: [2.0000         0         0
                         0.3300    1.0000         0
                              0         0    1.0000]
    
    

    读取并显示图像。

    I = imread("pout.tif");
    imshow(I)

    对该图像应用几何变换并显示结果。

    J = imwarp(I,tform);
    imshow(J)

    扩展功能

    版本历史记录

    在 R2022b 中推出

    全部展开