图像处理 仿射变换 线性变换 变换矩阵

博客介绍了仿射变换包含的平移、旋转、缩放、剪切等线性变换,以及它们的组合形式。给出了变换矩阵形式,引入齐次坐标以实现平移变换,还说明了不同变换的自由度。最后探讨了给定对应点集时,如何通过建立线性方程组并利用最小二乘或SVD分解等方法估计变换矩阵的参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、线性变换

  放射变换包括如下所有变换,以及这些变换任意组合:
在这里插入图片描述

  1. 平移(translation)和 旋转(rotation),两者的组合称之为 欧式变换(Euclidean transformation)或 刚体变换(rigid transformation);
  2. 缩放(scaling)可分为 uniform scalingnon-uniform scaling,uniform scaling:每个坐标轴放缩系数相同(各向同性),non-uniform scaling:不同;如果放缩系数为负,则会变成 反射(reflection)—— reflection可以看成是特殊的scaling;
  3. 刚体变换 + uniform scaling 称之为,相似变换(similarity transformation),即平移 + 旋转 + 各向同性的放缩;
  4. 剪切变换(shear mapping)将所有点沿某一指定方向成比例地平移。

二、变换矩阵形式

  由坐标(x,y)变换成( x ′ {x}' x y ′ {y}' y
[ x ′ y ′ ] = [ a b c d ] [ x y ] \begin{bmatrix} {x}'\\ {y}' \end{bmatrix}= \begin{bmatrix} a & b \\ c & d \end{bmatrix} \begin{bmatrix} x\\ y \end{bmatrix} [xy]=[acbd][xy]
  为了引入平移变换,因此引入齐次坐标
[ x ′ y ′ 1 ] = [ a b c d e f 0 0 1 ] [ x y 1 ] \begin{bmatrix} {x}'\\ {y}'\\ 1 \end{bmatrix}= \begin{bmatrix} a & b & c \\ d & e & f \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x\\ y\\ 1 \end{bmatrix} xy1=ad0be0cf1xy1
  矩阵变换如下图所示:

在这里插入图片描述
  刚体变换 = 旋转 * 平移,有三个自由度(θ, t x t_x tx t y t_y ty),旋转方向为逆时针,与图中的正负号不同:
[ x ′ y ′ 1 ] = [ c o s ( θ ) − s i n ( θ ) t x s i n ( θ ) c o s ( θ ) t y 0 0 1 ] [ x y 1 ] \begin{bmatrix} {x}'\\ {y}'\\ 1 \end{bmatrix}= \begin{bmatrix} cos(\theta) & -sin(\theta) & t_x\\ sin(\theta) & cos(\theta) & t_y\\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x\\ y\\ 1 \end{bmatrix} xy1=cos(θ)sin(θ)0sin(θ)cos(θ)0txty1xy1
  如果再乘上uniform scaling得到相似变换,有4个自由度(s,θ,tx,ty):
[ x ′ y ′ 1 ] = [ s ∗ c o s ( θ ) − s ∗ s i n ( θ ) t x s ∗ s i n ( θ ) s ∗ c o s ( θ ) t y 0 0 1 ] [ x y 1 ] \begin{bmatrix} {x}'\\ {y}'\\ 1 \end{bmatrix}= \begin{bmatrix} s*cos(\theta) & -s*sin(\theta) & t_x\\ s*sin(\theta) & s*cos(\theta) & t_y\\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x\\ y\\ 1 \end{bmatrix} xy1=scos(θ)ssin(θ)0ssin(θ)scos(θ)0txty1xy1

  放射变换矩阵有6个自由度(a,b,c,d,e,f)。

三、变换矩阵的参数估计

给定两个对应的点集,如何估计变换矩阵的参数?
   一对对应点可以得到两个线性方程,两个对应的点集可以得到线性方程组,对应点的数目至少为自由度的一半,求解方程组的参数可以使用基于最小二乘或者SVD分解等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

laboirousbee

你的鼓励是我创作的动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值