齐次坐标(Homogeneous coordinates):
非 特 别 指 出 , 向 量 为 列 向 量 \tiny 非特别指出,向量为列向量 非特别指出,向量为列向量
齐次坐标表示是计算机图形学的重要手段之一,它既能够用来明确区分向量和点,同时也更易用于进行仿射(线性)几何变换。”—— F.S. Hill, JR
齐次坐标就是一种通过增加一个维度来实现去尺度化的坐标。
点和线的齐次坐标
直 线 a x + b y + c = 0 线 的 齐 次 坐 标 ( 齐 次 矢 量 ) 为 l = ( a , b , c ) 直线ax+by+c=0 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\ 线的齐次坐标(齐次矢量)为l=(a, b ,c)\\ 直线ax+by+c=0 线的齐次坐标(齐次矢量)为l=(a,b,c)
线 上 的 点 ( x , y ) t 写 为 ( x , y , 1 ) t , 仍 保 持 2 D o f 点 的 普 通 坐 标 与 其 次 坐 标 的 转 化 : [ x 1 x 3 x 2 x 3 ] ⇔ [ x 1 x 2 x 3 ] 线上的点(x,y)^t写为(x,y,1)^t,仍保持2Dof \ \ \ \ \ \ \ \ \ \ \ \ \ \\ 点的普通坐标与其次坐标的转化:\begin{bmatrix}\frac{x_1}{x_3}\\ \\ \frac{x_2}{x_3}\end{bmatrix} \Leftrightarrow\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}\\ 线上的点(x,y)t写为(x,y,1)t,仍保持2Dof 点的普通坐标与其次坐标的转化:⎣⎡x3x1x3x2⎦⎤⇔⎣⎡x1x2x3⎦⎤
使用齐次坐标,可以很方便地表达点和线的关系。
点
在
线
上
:
则
原
式
可
表
示
为
,
(
x
,
y
,
1
)
t
(
a
,
b
,
c
)
=
x
t
∗
l
=
0
点在线上:则原式可表示为,(x, y, 1)^t(a, b ,c)=x^t*l=0\\
点在线上:则原式可表示为,(x,y,1)t(a,b,c)=xt∗l=0
线线叉乘(交点),点点叉乘(直线)
齐
次
坐
标
中
,
两
线
叉
乘
得
一
点
(
x
=
l
1
×
l
2
)
,
两
点
叉
乘
得
一
线
(
l
=
x
1
×
x
2
)
。
齐次坐标中,两线叉乘得一点(x=l_1×l_2),\\ 两点叉乘得一线(l=x_1×x_2)。
齐次坐标中,两线叉乘得一点(x=l1×l2),两点叉乘得一线(l=x1×x2)。
无穷远点(两个平行线的交)
由此可得两个平行线的交点,如x=1与x=2的交点:y轴无穷远点
d
e
t
(
[
i
j
k
−
1
0
1
−
1
0
2
]
)
=
[
0
1
0
]
det(\begin{bmatrix}\;i&\;j&\;k\\-1&0&\;1\\-1&0&2\end{bmatrix})=\begin{bmatrix}0\\1\\0\end{bmatrix}
det(⎣⎡i−1−1j00k12⎦⎤)=⎣⎡010⎦⎤
无穷远线(最后一维非0,其它为0):
d e t ( [ i j k a b 0 c d 0 ] ) = [ 0 0 1 ] 记 为 l ∞ det(\begin{bmatrix}\;i&\;j&\;k\\a&b&\;0\\c&d&0\end{bmatrix})=\begin{bmatrix}0\\0\\1\end{bmatrix}记为l_∞ det(⎣⎡iacjbdk00⎦⎤)=⎣⎡001⎦⎤记为l∞
对偶性
点 x 和 线 l x t l = 0 l t x = 0 点x和线l \\x^tl=0 \\ l^tx=0 点x和线lxtl=0ltx=0
齐次矩阵
齐次矩阵是对应于齐次坐标的,是靠比例约束的,3X3的矩阵,9个元素,存在8个比例,因此自由度是8。
投影变换矩阵分类
可逆变换 P^2 到 P^2,x=Hx’,投影矩阵H_3×3有8Dof,也称共线变换,应用 图像矫正 四个点即可。
欧式变换 3Dof 长度 角度 面积
相似变换 4Dof 长度比 角度
仿射变换 6Dof 平行线的长度比 面积比
l
∞
l_\infty
l∞
投影变换 8Dof 交比 接触的阶
相 似 保 持 虚 圆 点 [ s R t 0 1 ] [ 1 ± i 0 ] = [ s R [ 1 ± i ] 0 ] = [ s e i θ [ 1 ± i ] 0 ] 其 次 坐 标 提 出 公 因 数 s e i θ , 仍 为 虚 圆 点 相似保持虚圆点\\ \begin{bmatrix}sR&t\\0&1\end{bmatrix}\begin{bmatrix}1\\\pm i\\0\end{bmatrix}= \begin{bmatrix}sR\begin{bmatrix}1\\\pm i\end{bmatrix}\\0\end{bmatrix} =\begin{bmatrix}se^{i\theta}\begin{bmatrix}1\\ \pm i\end{bmatrix}\\0\end{bmatrix}\\ 其次坐标提出公因数se^{i\theta},仍为虚圆点 相似保持虚圆点[sR0t1]⎣⎡1±i0⎦⎤=⎣⎡sR[1±i]0⎦⎤=⎣⎡seiθ[1±i]0⎦⎤其次坐标提出公因数seiθ,仍为虚圆点
仿 射 [ A t 0 1 ] [ x 1 x 2 0 ] = [ A [ x 1 x 2 ] 0 ] 无 穷 远 线 经 过 仿 射 变 换 仍 为 无 穷 远 线 投 影 [ A t v t u ] [ x 1 x 2 0 ] = [ A [ x 1 x 2 ] v 1 x 1 + v 2 x 2 ] 结 果 为 有 穷 远 线 ( 投 影 变 换 能 用 于 观 察 无 穷 远 线 ) 仿射\\ \begin{bmatrix}A&t\\0&1\end{bmatrix} \begin{bmatrix}x_1\\x_2\\0\end{bmatrix}= \begin{bmatrix}A\begin{bmatrix}x_1\\x_2\end{bmatrix}\\0\end{bmatrix} \\ 无穷远线经过仿射变换仍为无穷远线\\ 投影\\ \begin{bmatrix}A&t\\v^t&u\end{bmatrix}\begin{bmatrix}x_1\\x_2\\0\end{bmatrix}=\begin{bmatrix}A\begin{bmatrix}x_1\\x_2\end{bmatrix}\\v_1x_1+v_2x_2\end{bmatrix}\\ 结果为有穷远线(投影变换能用于观察无穷远线) 仿射[A0t1]⎣⎡x1x20⎦⎤=⎣⎡A[x1x2]0⎦⎤无穷远线经过仿射变换仍为无穷远线投影[Avttu]⎣⎡x1x20⎦⎤=⎣⎡A[x1x2]v1x1+v2x2⎦⎤结果为有穷远线(投影变换能用于观察无穷远线)
Multiple View Geometry in Computer Vision
知乎:计算机视觉中的多视图几何 这本书看了有什么作用吗?
记
P
2
为
R
2
∪
l
∞
\tiny 记P^2为R^2\cup l_∞
记P2为R2∪l∞
什么是齐次坐标系?为什么要用齐次坐标系?