分三个部分来聊聊这个算子
一,算子的参数介绍
二,算法的计算过程
三,举例实现
第一部分,算子的介绍
image_points_to_world_plane( : : CameraParam, WorldPose, Rows, Cols, Scale : X, Y)
参数介绍:
CameraParam,:相机内参
WorldPose 世界坐标系,也叫物体坐标系(成像坐标系相对于相机坐标系的位姿)
Rows, Cols,图像上点的像素坐标
比例关系,是投影到mm,还是m
X, Y 物体坐标系下,的坐标。
注:向物体坐标系的投影中,z方向默认是0。单相机成像过程中,深度信息会丢失
第二部分,算法的过程这是重点
通过这张图来看看成像的过程
1,像素点图片跟成像平面的关系,是平行的,参考点变换(由中心向像素00点变化),缩放关系(缩放是指将物理尺寸,通过像素点尺寸和像素值进行了描述)构成。这一部分基本是由算法内部,自动构成的。
2,成像平面与相机中心的距离是焦距f,方向与光轴方向垂直。大小由相机的感光芯片决定。像素图像的大小,也由感光芯片的分辨率决定。在成像平面的成像尺寸,由像素数量和像素尺寸可计算获得。
3,物体坐标系与相机坐标系,成像平面三者的关系,是小孔成像的关系。如果不确定物体坐标系,那么像素点的反向投影,将是一条过相机00点的射线。只有在给定的物体坐标系中,像素点向外的投影才会有具体的值。但 投影后的Z轴方向是无法确定。
4,对于物体坐标系的理解;它的存在是为了更方便的描述物体各部位自己的尺寸关系,更加便捷。玩过机器人都知道,机器人有基座标,在底座的中心,这是机器人的基本参考系,还有工件坐标系,也叫工作台坐标系。在3d视觉中,相机00点就相当于机器人的基座标,pose(物体坐标系,世界坐标系)就是工件坐标系,反理解的就是竟然有这么多的世界坐标系,所以建议理解为物体坐标系。在一个3d模型中,只会有一个相机坐标系。但可以有很多个相机,很多个物体坐标系。