Transformation/

发布于 2025-03-05  26 次阅读


在图像的变换上,我们可以依靠矩阵实现一些基本的线性变换。如scale(缩放)、Reflection(翻转)、Shear(切变)、Rotate(旋转)

2D变换

如下:将图像化为坐标x,y;则可以用矩阵运算表示:

对于图像变换我们一般线性变换都是以公式表示

X` = a x+by ; Y` =c x+ d y;

用矩阵格式则是以下

依此,推出其他线性变换的矩阵(基本变换)如下:

基本线性变换:

1.1缩放

1.2.镜像

1.3切变

1.4旋转

注意:旋转矩阵是以原点作为基准的。

2、仿射变换与齐次坐标

以上都是图形会发生的基本变换可以总结为一个同阶矩阵*原坐标,但是当我们想要进一步平移时,问题出现了。哎?

想要实现平移,我们的运算就是X`= x+tx;

转变矩阵你就会发现,不能以之前的矩阵相乘获得,需要额外加一组列向量;

其实平移变换是非线性变换,只能用以上矩阵形式表示,叫仿射变换

但是在计算时,我们还需要额外加法运算吗?能不能和线性变换一致,统一格式。于是,齐次坐标出现了。

对于化为(x,y,1)T

对于向量:化为(x,y,0)T

则公式则变为:

这样就实现了.

所以以上2维就需要全部变为3阶,这也是齐次坐标比原阶数多一阶的原因。

逆变换与组合变换

根据矩阵的特征,逆矩阵与矩阵相乘会变为单位矩阵,因此我们可以借助逆矩阵将经过矩阵变换的图像还原。

对于同一图形进行多种变换,即将不同的变换矩阵进行左乘即可,不过需要注意,如果想让物体自身旋转,需要先回复到原点位置再旋转,最后再移回去。

3D 变换


逻辑创造奇迹