前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >仿射变换(affine transformation)

仿射变换(affine transformation)

作者头像
为为为什么
发布2023-03-19 09:46:43
9930
发布2023-03-19 09:46:43
举报
文章被收录于专栏:又见苍岚又见苍岚

简单来说,“仿射变换”就是:“线性变换”+“平移”,本文记录相关内容。

线性变换

之前我们整理过 线性变换 相关的知识,核心有三点:

  1. 变换前是直线的,变换后依然是直线
  2. 直线比例保持不变
  3. 变换前是原点的,变换后依然是原点

仿射变换

线性变换 中其实也提到了仿射变换,当时就定性了平面上二维仿射变换不是线性变换,因为原点会移动。

仿射变换从几何直观只有两个要点:

  1. 变换前是直线的,变换后依然是直线
  2. 直线比例保持不变

相比于线性变换就是不再保持原点的自我映射

的仿射变换具有下列形式:

T(\mathbf{x})=A \mathbf{x}+\mathbf{b}

也就是说,仿射变换由一线性变换加上一平移量构成。因为

通过线性变换来完成仿射变换

\vec{y}=A \vec{x}+\vec{b} 可以写作 \left[\begin{array}{l}\vec{y} \ 1\end{array}\right]=\left[\begin{array}{cc}A & \vec{b} \ 0 & 1\end{array}\right]\left[\begin{array}{l}\vec{x} \ 1\end{array}\right]

即虽然在当前维度下仿射变换不是线性变换,但可以通过升维,实现通过高维线性变换完成低维仿射变换的效果。

引用马同学的解释:

这样我就可以在二维空间下通过 \left[\begin{array}{cc}A & \vec{b} \ 0 & 1\end{array}\right] $``$ z=1 平面上的二维正方形,完成仿射变换:

维基百科 中有动图形象地揭示了这个过程:

常见的仿射变换

仿射变换主要有旋转、平移、缩放、错切四种常见变换以及他们的任意组合形式。

变换名称

变换矩阵

示例

恒等变换

$\left\begin{array}{lll}1 & 0 & 0 \ 0 & 1 & 0 \ 0 & 0 & 1\end{array}\right$

平移

$\left\begin{array}{ccc}1 & 0 & v_{x}>0 \ 0 & 1 & v_{y}=0 \ 0 & 0 & 1\end{array}\right$

翻转

$\left\begin{array}{ccc}-1 & 0 & 0 \ 0 & 1 & 0 \ 0 & 0 & 1\end{array}\right$

缩放

$\left\begin{array}{ccc}c_{x}=2 & 0 & 0 \ 0 & c_{y}=1 & 0 \ 0 & 0 & 1\end{array}\right$

旋转

$\left\begin{array}{ccc}\cos (\theta) & -\sin (\theta) & 0 \ \sin (\theta) & \cos (\theta) & 0 \ 0 & 0 & 1\end{array}\right$

错切

$\left\begin{array}{ccc}1 & c_{x}=0.5 & 0 \ c_{y}=0 & 1 & 0 \ 0 & 0 & 1\end{array}\right$

参考资料

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023年3月15日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 线性变换
  • 仿射变换
  • 通过线性变换来完成仿射变换
  • 常见的仿射变换
  • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档