赞
踩
双目相机可以通过左右目图像的匹配得到每个像素的视差,即左眼像素 u l , v u_l, v ul,v 能找到右眼图像中的匹配像素 u r , v u_r, v ur,v, 注意经过极线校正后的双目相机,左眼和右眼互相匹配的像素有相同的纵轴坐标(纵轴坐标都是 v v v)。假设我们知道左眼某个像素的视差 d = ∣ u l − u r ∣ d=\vert u_l - u_r\vert d=∣ul−ur∣, 那么如何求解这个像素的深度呢?下文我们就探究一下这个问题。
如上图所示,我们要求解的像素深度就是 D D D 表示的是空间点到基线(baseline)的距离。而两个像素之间的视差呢,可以理解为 d 1 + d 2 d_1+d_2 d1+d2。
我们首先规定,以上的变量的单位都是(像素)。则我们可以看出来左眼形成了相似三角形,并且有
d
1
f
=
a
D
−
f
\frac{d_1}{f}=\frac{a}{D-f}
fd1=D−fa, 而右眼形成了相似三角形
b
D
−
f
=
d
2
f
\frac{b}{D-f}=\frac{d2}{f}
D−fb=fd2。
因此我们可以得到
d
1
+
d
2
f
=
a
+
b
D
−
f
d
1
+
d
2
f
=
b
s
−
(
d
1
+
d
2
)
D
−
f
b
s
−
(
d
1
+
d
2
)
d
1
+
d
2
=
D
−
f
f
b
s
d
1
+
d
2
=
D
f
D
=
b
s
⋅
f
d
1
+
d
2
因此我们可以得到深度和视差的关系,其中 d 1 + d 2 d_1+d_2 d1+d2就是视差。以上得到的关系都是以像素为单位,如果要切换到物理世界的长度单位,需要知道每个像素的长度 s s s, 将得到的像素深度 D D D 乘上 s s s即可。另外从上述公式我们可以看出来,视差越小,深度越大,也符合我们的直觉。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。