主要内容

将几何变换迁移到预乘法约定

从R2022b开始,创建和执行几何变换的函数使用预乘法矩阵约定。

一组新的对象使用预乘法约定支持几何变换。没有删除支持后乘约定的旧几何变换对象的计划。

关于前置乘法和后置乘法约定

使用之前的二维后乘矩阵约定,将点(uv)到输入坐标空间的点(xy)在输出坐标空间中使用约定:

x y 1 u v 1 Τ

几何变换矩阵T由3 × 3矩阵表示:

Τ 一个 d 0 b e 0 c f 1

在二维预乘法矩阵约定中,将点(uv)到输入坐标空间的点(xy)在输出坐标空间中使用约定:

x y 1 Α × u v 1

几何变换矩阵一个是由一个3 × 3矩阵表示的它是矩阵的转置T

Α 一个 b c d e f 0 0 1

从以前的几何变换对象创建新的几何变换对象

如果您的代码使用前面的一个几何转换对象,那么您可以通过使用支持预乘法约定的新的几何转换对象来更新您的代码。

  1. 选择执行所需转换的新几何转换对象的类型。某些类型的后乘几何变换对象具有几个满足约束的前乘对象。该表显示了可用的几何转换对象,您可以使用它们来代替前面的对象。

    先前的几何变换对象 电流几何变换对象
    affine2d 使用affinetform2d代替。若要创建表示纯刚性、相似或平移变换的二维仿射变换,请使用rigidtform2dsimtform2d,或transltform2d,分别。
    affine3d 使用affinetform3d代替。若要创建表示纯刚性、相似或平移变换的三维仿射变换,请使用rigidtform3dsimtform3d,或transltform3d,分别。
    rigid2d 使用rigidtform2d代替。要创建表示纯平移的二维刚性变换,请使用transltform2d
    rigid3d 使用rigidtform3d代替。要创建一个表示纯平移的三维刚性变换,请使用transltform3d
    projective2d 使用projtform2d代替。
  2. 使用存储在旧对象中的变换矩阵的转置来创建对象。例如,这段代码展示了如何转换由类表示的二维仿射转换affine2d对象命名tformPost到一个affinetform2d对象命名tformPre

    T = tformPost.T;= T ';tformPre = affinetform2d (A)

相关的话题

Baidu
map