ros双目相机标定

双目标定过程 ROS.org

标定后的参数解释 ROS官网解释

这里解释下其中的投影矩阵,参考双目标定
投影矩阵
P = [ f x ′ 0 c x ′ T x 0 f y ′ c y ′ T y 0 0 1 0 ] (1) P= \left[ \begin{matrix} fx' & 0& cx' & Tx\\ 0 & fy' & cy'& Ty \\ 0 & 0 & 1& 0 \end{matrix} \right]\tag{1} P=⎣⎡​fx′00​0fy′0​cx′cy′1​TxTy0​⎦⎤​(1)
对于左相机,前三列是矫正后的相机内参矩阵,最后一列Tx,Ty都是0,对于右相机,前三列是矫正后右目的内参矩阵,最后一列和右目光心在左目相机坐标系下的位置有关(注意不是相等),其实因为矫正的原因,这里的左右内参都是一样的。
Tz=0表示两个相机在相同的立体图像平面上(这就是矫正的作用),Ty=0,表示矫正后的左右图像的纵坐标相同,极线平行可以加快极线搜索的速度,Tx=-fx’*B,B是双目相机的基线,这个值是用来根据视差的相似三角形关系计算3D点深度的参考深度测量
焦距f在水平方向的像素个数就是fx = f / dx,关于为什么是fx而不是f,个人理解是由于z=f * B/d中,视差d的单位是像素,基线B的单位是米,为得到米制的深度z,要使用归一化的fx代替f以消掉像素这个单位(可能不全面,欢迎补充)。
由投影矩阵便可得到归一化的2D图像点(x,y)和3D点(X,Y,Z)的变换关系:
[ u v w ] = [ f x ′ 0 c x ′ T x 0 f y ′ c y ′ T y 0 0 1 0 ] ∗ [ X Y Z 1 ] (2) \left[\begin{matrix} u\\v\\w\end{matrix} \right]= \left[ \begin{matrix} fx' & 0& cx' & Tx\\ 0 & fy' & cy'& Ty \\ 0 & 0 & 1& 0 \end{matrix} \right]*\left[\begin{matrix} X\\Y\\Z\\1\end{matrix} \right] \tag{2} ⎣⎡​uvw​⎦⎤​=⎣⎡​fx′00​0fy′0​cx′cy′1​TxTy0​⎦⎤​∗⎣⎢⎢⎡​XYZ1​⎦⎥⎥⎤​(2)
x = u / w y = v / w (3) x=u/w\\ y=v/w\tag{3} x=u/wy=v/w(3)

上一篇:51单片机指令详解


下一篇:CY-122B-P Photoelectric Sensor 光电传感器