参考链接:处理点云数据(五):坐标系的转换_听说你爱吃芒果的博客-CSDN博客_点云坐标系转换相机的内外参矩阵坐标系主要有两类坐标系,一类为相机坐标系,一类为世界坐标系(即物体所处真实世界) 内参矩阵设空间中有一点P,若世界坐标系与相机坐标系重合,则该点在空间中的坐标为(X, Y, Z),其中Z为该点到相机光心的垂直距离。设该点在像面上的像为点p,像素坐标为(x, y)。 由上图可知,这是一个简单的相似三角形关系,从而得到 但是,图像的像素坐标系原点https://blog.csdn.net/qq_33801763/article/details/77033064本文是自己学习笔记,参考一些其他大神的文章,同时记录自己的学习心得。
相机的内外参矩阵
主要有两类坐标系,一类为相机坐标系,一类为世界坐标系(即物体所处真实世界)
内参矩阵
设空间中有一点P,若世界坐标系与相机坐标系重合,则该点在空间中的坐标为(X, Y, Z),其中Z为该点到相机光心的垂直距离。设该点在像面上的像为点p,像素坐标为(x, y)。
但是,图像的像素坐标系原点在左上角,而上面公式假定原点在图像中心,为了处理这一偏移,设光心在图像上对应的像素坐标为(cx,cy),则
内参矩阵,只与相机的内部参数有关,(f焦距,cx,cy是光心在图像上对应的像素坐标)
外参矩阵
以上情况是世界坐标系与相机坐标系重合的特殊情况,而在一般情况下,世界坐标系中的某一点P要投影到像面上时,先要将该点的坐标转换到相机坐标系下。设P在世界坐标系中的坐标为X,P到光心的垂直距离为s(即上文中的Z),在像面上的坐标为x,世界坐标系与相机坐标系之间的相对旋转为矩阵R(R是一个三行三列的旋转矩阵),相对位移为向量T(三行一列),则
其中[R T]是一个三行四列的矩阵,称为外参矩阵,它和相机的参数无关,只与相机在世界坐标系中的位置有关。
世界坐标系——》相机坐标系——》图像坐标系
点云到相机的坐标转换
在第 i 个相机图像中,经过矫正的相机坐标3D点 X = (x, y, z, 1)^T到点Y = (u, v, 1)^T的投影表示为:
其中,为第i个相机的投影矩阵,b_{x}^{i} 表 示 相 对 于 参 考 相 机 0 的 基 线 ( 以 米 为 单 位 ) 。 为 了 在 参 考 相 机 坐 标 中 将 3 D 点 X 投 影 到 第 i 个 相 机 图 像 面 上 的 点 Y , 相机0的矫正旋转矩阵 R_{rect}^{(0)} 也必须考虑进去,所以:
在这里,$ R_{rect}^{(0)} $ 被扩展成了4*4的矩阵,令R(4, 4) = 1,其余为0。。
最后再考虑点云到相机的外参矩阵,即。
点云在世界坐标系下坐标——》相机R0坐标系——》第i个相机坐标系——》第i个相机图像平面坐标系
投影矩阵=内参矩阵 * 基于相机0的旋转矩阵 * 外参矩阵
P_velo_to_img = calib.P_rect{cam+1} * R_cam_to_rect * Tr_velo_to_cam
外参矩阵:Tr_velo_to_cam
基于相机0的旋转矩阵:R_cam_to_rect
内参矩阵?(应该是由相机的内参矩阵得到的,彩色摄像机和灰度摄像机有区别):calib.P_rect{cam+1}
————————————————
版权声明:本文为CSDN博主「听说你爱吃芒果」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_33801763/article/details/77033064