主要内容

几何变换的矩阵表示

你可以用数值矩阵来表示一个线性几何变换。每种类型的转换,例如转换、缩放、旋转和反射,都是使用一个矩阵定义的,其元素遵循特定的模式。您可以通过获取表示转换的矩阵的组合来创建组合多个转换。有关更多信息,请参见创建复合二维仿射变换

二维仿射变换

该表列出了二维仿射变换和用于定义它们的变换矩阵。对于二维仿射变换,最后一行必须是(0 0 1)

  • 使用二维平移矩阵的组合来创建一个transltform2d表示转换转换的对象。

  • 使用二维平移和旋转矩阵的组合来创建一个rigidtform2d表示非反射刚性变换的对象。

  • 使用二维平移、旋转和缩放矩阵的组合来创建simtform2d表示非反射相似性转换的对象。

  • 使用二维变换矩阵的任意组合来创建affinetform2d表示一般仿射变换的对象。

二维仿射变换 示例(原始和转换后的图像) 变换矩阵
翻译

1 0 t x 0 1 t y 0 0 1

tx的位移x

ty的位移y轴。

有关像素坐标的更多信息,请参见图像坐标系统

规模

年代 x 0 0 0 年代 y 0 0 0 1

年代x的比例因子x

年代y的比例因子y轴。

剪切

1 年代 h x 0 年代 h y 1 0 0 0 1

上海x的剪切因子x轴。

上海y的剪切因子y轴。

反射

cosd (2 φ 信德(2 φ 0 信德(2 φ cosd (2 φ 0 0 0 1

φ指定反射轴的角度,以度为单位。

两种常见的反射是垂直反射和水平反射。垂直反射是关于x设在,所以φ为0,反射矩阵简化为:

[1 0 0;0 1 0;0 0 1]

水平反射是关于的反射y设在,所以φ等于90,反射矩阵简化为:

[1 0 0;0 1 0;0 0 1]

旋转

cosd θ 信德 θ 0 信德 θ cosd θ 0 0 0 1

θ表示绕原点旋转的角度,单位为度。

二维射影变换

射影变换使图像的平面倾斜。平行线可以汇聚到一个消失的点,创造出深度的外观。

这个变换是一个3 × 3矩阵。与仿射变换不同,它对变换矩阵的最后一行没有限制。使用二维仿射变换矩阵和射影变换矩阵的任意组合来创建一个projtform2d表示一般射影变换的对象。

二维射影变换 例子 变换矩阵
倾斜

1 0 0 0 1 0 E F 1

E而且F影响消失点。

E而且F如果消点越大,消点越接近原点,因此平行线似乎收敛得更快。

三维仿射变换

该表列出了三维仿射变换和用于定义它们的变换矩阵。注意,在3d情况下,有多个矩阵,这取决于您想如何旋转或剪切图像。对于三维仿射变换,最后一行必须是[0 0 0 1]

  • 使用三维平移矩阵的组合来创建一个transltform3d表示转换转换的对象。

  • 使用三维平移和旋转矩阵的组合来创建一个rigidtform3d表示非反射刚性变换的对象。

  • 使用三维平移、旋转和缩放矩阵的组合来创建一个simtform3d表示非反射性相似转换的。

  • 使用三维变换矩阵的任意组合来创建一个affinetform3d表示一般仿射变换的对象。

三维仿射变换 变换矩阵
翻译

翻译的数量txty,txxy,z方向,分别为:

1 0 0 t x 0 1 0 t y 0 0 1 t z 0 0 0 1

规模

按比例因子计算年代x年代y,年代xxy,z维度,分别为:

年代 x 0 0 0 0 年代 y 0 0 0 0 年代 z 0 0 0 0 1

剪切

内的剪切- z飞机:

1 0 0 0 年代 h x y 1 0 0 年代 h x z 0 1 0 0 0 0 1

这样

x x y y + 年代 h x y x z z + 年代 h x z x

内的剪切x z飞机:

1 年代 h y x 0 0 0 1 0 0 0 年代 h y z 1 0 0 0 0 1

这样

x x + 年代 h y x y y y z z + 年代 h y z y

内的剪切x - y飞机:

1 0 年代 h z x 0 0 1 年代 h z y 0 0 0 1 0 0 0 0 1

这样

x x + 年代 h z x z y y + 年代 h z y z z z

反射

反映在- z平面上,否定x坐标:

1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

反映在x z平面上,否定y坐标:

1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

反映在x - y平面上,否定z坐标:

1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

旋转

内旋转- z平面的角θx关于x轴,在度:

1 0 0 0 0 cosd θ x 信德 θ x 0 0 信德 θ x cosd θ x 0 0 0 0 1

内旋转x z平面的角θy关于y轴,在度:

cosd θ y 0 信德 θ y 0 0 1 0 0 信德 θ y 0 cosd θ y 0 0 0 0 1

内旋转x - y平面的角θz关于z轴,在度:

cosd θ z 信德 θ z 0 0 信德 θ z cosd θ z 0 0 0 0 1 0 0 0 0 1

3-D投影变换和N-D变换

imwarp函数不支持三维射影变换或N-D仿射和射影变换。方法可以从几何变换矩阵创建空间变换结构maketform函数。方法将转换应用到图像上tformarray函数。有关更多信息,请参见n维空间转换

变换矩阵的维数必须是(N+1)-乘(N+1)的maketform而且tformarray函数使用后乘矩阵约定。后乘约定中的几何变换矩阵是前乘约定中的矩阵的转置。因此,对于N-D仿射变换矩阵,最后一列必须包含[0 (N, 1);1]最后一行的值没有限制。

另请参阅

||||

相关的例子

更多关于

Baidu
map