图像的坐标变换
图像的坐标变换
图像的平移、旋转、缩放等都属于图像的坐标的变换。图像中的每一个像素都有一个坐标,比如某像素的坐标是,则像素的坐标变换可以写成矩阵的乘积形式:
其中是一个的变换矩阵。对与有个像素的图像,他们的坐标组成了一个的矩阵,则关于图像的坐标变换为:
但是在使用中,我们并不直接使用2维的像素坐标,而是它的齐次坐标形式,下面就对齐次坐标做一个说明。
齐次坐标
齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示,是指一个用于投影几何里的坐标系统。
在齐次坐标里,需要三个值来表示投影平面上的一点。则点 在齐次坐标里面变成了 ,并且有 , 。笛卡尔坐标系下 的齐次坐标可以表示为 ,如果点 移动到无限远 处,在笛卡尔坐标下它变为 ,然后它的齐次坐标表示为 ,因为 ,我们可以不用 来表示一个无穷远处的点。下面为齐次坐标与笛卡尔坐标的转换关系。
齐次坐标在电脑图形内无处不在,因为该坐标允许平移、旋转、缩放及透视投影等可表示为矩阵与向量相乘的一般向量运算。依据链式法则,任何此类运算的序列均可相乘为单一个矩阵,从而实现简单且有效之处理。与此相反,若使用笛卡儿坐标,平移及透视投影不能表示成矩阵相乘。所以接下来我们用齐次坐标来表示图形的坐标变换。
仿射变换
仿射变换就是线性变换加平移,线性变换有三个特点:
- 变换前是直线,变换后依然是直线;
- 直线比例保持不变
- 变换前是原点,变换后依然是原点

旋转变换的分解
一个旋转变换可以看作是两个剪切变换的结合:
示意图如下:

第一个变换为:
即图像被用偏移量 水平平移, 并根据因子 而收缩 。
第二个变换为:
它仅在垂直方向进行剪切和收缩变换。
为了避免使用收缩变换,也可以使用三个剪切变换来组合:
(欢迎转载,转载请注明出处。文中如有错误,还请指出。)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通