美文网首页
第一章 2D射影几何和变换(下)

第一章 2D射影几何和变换(下)

作者: hmta_dhs | 来源:发表于2024-01-31 10:49 被阅读0次

系列索引:MVG计算机视觉中的多视图几何
上一篇:第一章 2D射影几何和变换(上)


1.5 从图像恢复仿射和度量性质


由图像恢复仿射和度量性质可以说是2D射影几何的主要目的之一。通俗来说,就是将图像进行变换,使得图像像素级别的平行(仿射)性质和单位长度(度量)性质和实际三维世界(的平面)对应。


射影变换8dof=仿射变换6dof+无穷直线的像2dof=相似变换4dof+2个虚圆点+无穷直线的像2dof
H=H_SH_AH_P=\begin{bmatrix} sR & \mathbf{t}/v \\ \mathbf{0}^T & 1 \end{bmatrix}\begin{bmatrix} K & \mathbf{0} \\ \mathbf{0}^T & 1 \end{bmatrix}\begin{bmatrix} I & \mathbf{0} \\ \mathbf{v}^T & v \end{bmatrix}=\begin{bmatrix} A & \mathbf{t} \\ \mathbf{v}^T & v \end{bmatrix}
无穷远线
在射影变换中,理想点可以映射为有限点,因而无穷远直线\mathbf{l}_{\infty}被映射为有限直线。但是在仿射变换下,\mathbf{l}_{\infty}依然被映射为无穷直线:
\mathbf{l}_{\infty}^{'}=H_{A}^{-T}\mathbf{l}_{\infty}=\begin{bmatrix} A^{-T} & \mathbf{0} \\ -\mathbf{t}^{T}A^{-T} & 1 \end{bmatrix} \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix}=\begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix}=\mathbf{l}_{\infty}

结论:在射影变换H下,无穷远直线\mathbf{l}_{\infty}为不动直线的充要条件是H是仿射变换
注意:在仿射变换下,\mathbf{l}_{\infty}并不是点点不动。
由图像恢复仿射性质:摄影到仿射,目的是恢复平行性质
已知\mathbf{l}_{\infty}的像,可以将射影变换恢复到仿射变换。

仿射矫正:单应→仿射,目的是使图片和平面有相同的平行性质

如果无穷远直线的像是\mathbf{l}=(l_1,l_2,l_3)^T,假定l_3 \neq 0,那么把\mathbf{l}映射回\mathbf{l}_{\infty}=(0,0,1)^T的一个合适的射影变换是
H=H_A \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ l_1 & l_2 & l_3 \end{bmatrix} \\ H^{-T}(l_1,l_2,l_3)^T=(0,0,1)^T=\mathbf{l}_{\infty}

仿射矫正计算方法
已知:一条直线上三个点\mathbf{a}\mathbf{b}\mathbf{c}的像\mathbf{a}'\mathbf{b}'\mathbf{c}'以及两个线段在真实世界的长度比d(\mathbf{a},\mathbf{b}):d(\mathbf{b},\mathbf{c})=a:b
求解:该直线无穷远点的像
计算过程:

  1. 在图象中计算距离比d(\mathbf{a'},\mathbf{b'}):d(\mathbf{b'},\mathbf{c'})=a':b'
  2. 分别在直线<\mathbf{a},\mathbf{b},\mathbf{c}><\mathbf{a}',\mathbf{b}',\mathbf{c}'>上建立坐标系,把这些点表示为齐次2维矢量(0,1)^T(a,1)^T(a+b,1)^T以及(0,1)^T(a',1)^T(a'+b',1)^T
  3. 计算从\mathbf{a} \rightarrow \mathbf{a}'\mathbf{b} \rightarrow \mathbf{b}'\mathbf{c} \rightarrow \mathbf{c}'的1D射影变换H_{2\times2}
  4. 计算变换H_{2\times2}下无穷远点(1,0)^T的像,即为结果。

虚圆点及其对应的对偶二次曲线
虚圆点(绝对点):\mathbf{l}_{\infty}在相似变换下的不动点
\mathbf{I}=\begin{bmatrix} 1 \\ i \\ 0 \end{bmatrix}

\mathbf{J}=\begin{bmatrix} 1 \\ -i \\ 0 \end{bmatrix}

虚圆点在保向相似变换下不变
\mathbf{I'}=H_S\mathbf{I}=\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} 1 \\ i \\ 0 \end{bmatrix}=se^{-i\theta}\begin{bmatrix} 1 \\ i \\ 0 \end{bmatrix}=\mathbf{I}

在射影变换H下,虚圆点IJ为不动点的充要条件是H是相似变换

“虚圆点”的命名起源于每一圆周交\mathbf{l}_{\infty}于虚圆点。当二次曲线为圆时,有a=cb=0,取a=1,有
x_1^2+x_2^2+dx_1x_3+ex_1x_3+fx_3^2=0
该二次曲线交\mathbf{l}_{\infty}于理想点,即x_3=0,则有
x_1^2+x_2^2=0
解得\mathbf{I}=(1,i,0)^T, \mathbf{J}=(1,-i.0)^T

虚圆点对应的对偶二次曲线
C^*_{\infty}=\mathbf{IJ}^T+\mathbf{JI}^T=\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \end{bmatrix}

射影平面的夹角
在欧氏几何中,两线间的夹角由它们法线的点乘来计算。直线\mathbf{l}=(l_1,l_2,l_3)^T\mathbf{m}=(m_1,m_2,m_3)^T的法线分别平行于(l_1,l_2)^T(m_1,m_2)^T,其夹角为
\cos{\theta}=\frac{l_1m_1+l_2m_2}{\sqrt{(l_1^2+l_2^2)(m_1^2+m_2^2)}}
上式经过仿射变换或射影变换后不能使用,而应该用下式代替
\cos{\theta}=\frac{\mathbf{l}^TC^{*}_{\infty}\mathbf{m}}{\sqrt{(\mathbf{l}^TC^{*}_{\infty}\mathbf{l})(\mathbf{m}^TC^{*}_{\infty}\mathbf{m})}}
而上式在射影变换下不变
\mathbf{l}^TC^{*}_{\infty}\mathbf{m} \rightarrow (\mathbf{l}^TH^{-1})(HC^{*}_{\infty}H^T)(H^{-T}\mathbf{m})=\mathbf{l}^TC^{*}_{\infty}\mathbf{m}
一旦二次曲线C^*_{\infty}的像已知,则可以通过两直线的像计算其实际角度;且根据正弦定理也可以推出长度比。
一旦\mathbf{l}^TC^{*}_{\infty}\mathbf{m}=0,则直线\mathbf{l}\mathbf{m}正交。

对偶二次曲线C^*_{\infty}的像
{C^{*}_{\infty}}'=(H_PH_AH_S)C^{*}_{\infty}(H_PH_AH_S)^T=(H_PH_A)(H_SC^{*}_{\infty}H_S^T)(H_A^TH_P^T) \\=(H_PH_A)C^{*}_{\infty}(H_A^TH_P^T)=\begin{bmatrix} KK^T & KK^T\mathbf{v} \\ \mathbf{v}^TKK^T & \mathbf{v}^TKK^T\mathbf{v} \end{bmatrix}
一旦找到{C^{*}_{\infty}}',就可以将射影变换矫正为相似变换。将{C^{*}_{\infty}}'进行SVD:
{C^{*}_{\infty}}'=U\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \end{bmatrix}U^T
其中U即为矫正变换
度量矫正I:仿射矫正+2对垂直线的像 仿射到相似,目的是恢复夹角
\mathbf{l}'^T{C^{*}_{\infty}}'\mathbf{m}'=\begin{bmatrix} l_1' & l_2' & l_3' \end{bmatrix} \begin{bmatrix} KK^T & \mathbf{0} \\ \mathbf{0}^T & 0 \end{bmatrix} \begin{bmatrix} m_1' \\ m_2' \\ m_3' \end{bmatrix}=0
上式可以重写为
(l_1'm_1',l_1'm_2'+l_2'm_1',l_2'm_2')\mathbf{s}=0
其中S=KK^T\mathbf{s}=(s_{11},s_{12},s_{22})
两对正交直线组成2\times3矩阵,即可求解S,再通过Cholesky分解求得K

度量矫正II:5对垂直线的像 射影到相似,目的是恢复夹角
\mathbf{l}^T{C^*_{\infty}}'\mathbf{m}=0
(l_1m_1,(l_1m_2+l_2m_1)/2,l_2m_2,(l_1m_3+l_3m_1)/2,(l_2m_3+l_3m_2)/2,l_3m_3)\mathbf{c}=0
其中,\mathbf{c}=(a,b,c,d,e,f)^T{C^*_{\infty}}'的6维矢量形式。
五对正交直线组成5\times6矩阵,即可求解{C^*_{\infty}}',再通过Cholesky分解求得K.


1.6 二次曲线的其他性质

\mathbf{x}和二次曲线C定义一条直线\mathbf{l}=C\mathbf{x}. \mathbf{I}称为\mathbf{x}关于C的极线,而点\mathbf{x}称为\mathbf{l}关于C的极点.
\mathbf{x}和二次曲线C的极线\mathbf{l}=C\mathbf{x}C交于两点.C的过这两点的两条切线相交于\mathbf{x}

如果点\mathbf{x}C上,则它的极线就是二次曲线过\mathbf{x}的切线。

对射\mathbb{P}^2点到\mathbb{P}^2线的可逆映射
共轭点:如果点\mathbf{y}在极线\mathbf{l}=C\mathbf{x}上,则\mathbf{y}^T\mathbf{l}=\mathbf{y}^TC\mathbf{x}=0.满足\mathbf{y}^TC\mathbf{x}=0的任何两点\mathbf{x}\mathbf{y}称为关于二次曲线C的共轭。
如果\mathbf{x}\mathbf{y}的极线上,那么\mathbf{y}也在\mathbf{x}的极线上。

二次曲线的分类

不动点:变换矩阵的特征向量

相关文章

  • 2D射影几何与变换

    1.基本表示 列向量:粗体符号如x总是表示列向量,其转置表示行向量。 欧氏空间:,为维度。 射影空间:,为维度。 ...

  • Homography|单应性

    几何变换类型 保距变换 isometry 相似变换 similarity 仿射变换 affine 射影变换 pro...

  • 单应性 (Homography)

    单应性 是几何中的一个概念。单应性是一个从实射影平面到射影平面的可逆变换,直线在该变换下仍映射为直线。 可以用 F...

  • 2019-06-11

    CSS3 2d变换 3d变换 css3 2d变换 111111 222222

  • OpenCV实现图像的几何变换

    图像的几何变换 几何变换主要包括缩放、平移、旋转、仿射变换、透视变换和图像裁剪等。执行这些几何变换的两个关键函数是...

  • transform变换

    transform变换 1. 变换属性 transform 变换分为2D变换和3D变换,描述的是一种变化之后的结果...

  • 几何变换

    相对于点操作改变了图像的值域范围,几何变换关注于改变图像的定义域。原先采用的方法是全局参数化2D变换,之后...

  • 3D数学基础及图形开发(六)矩阵的线性变换-镜像和切变

    线性变换-镜像 2D镜像,基于x轴进行镜像变换。(以轴为镜子)(x轴不变,y取反) 镜像矩阵,2D和3D公式(针对...

  • CSS3动画

    CSS3之2D/3D动画 2D的变换3D的变换动画 2D动画的变换 基本说明 注意:一般要写不同浏览器的适配 移动...

  • 16.帕斯卡定理

    帕斯卡定理,是二次曲线上的定理。同样适应于相交的直线,圆锥曲线。为射影几何的重要定理。 射影几何的定理,单纯用综合...

网友评论

      本文标题:第一章 2D射影几何和变换(下)

      本文链接:https://www.haomeiwen.com/subject/ilooodtx.html