使用上面的设置,我在平面的两侧都有激光线的霍夫方程。我甚至过滤掉了物体上的像素点。我也从我放在飞机两侧的棋盘图案中取出了相机的外在参数(所以我知道{R1,T1}和{R2,T2})
现在我想生成对象的点云。我看到我需要将激光平面(Elaser)与来自相机的观察光线(r)相交以获得单个3D点(p),任何关于我如何做到这一点的线索?
这就是我认为我必须做的事情,如果我错了,有人可能会纠正我
STEP1:
将所有点从(左平面)坐标系转换为(右平面)坐标系,从{R1,T1}和{R2,T2}获得单个{R,T}
STEP2:
使用相同的坐标系(在STEP1中转换),使用左平面上的2个激光点和右平面上的1个激光点找到激光平面的方程式
STEP3:
使用激光平面方程和物体上的2D点
这就是我目前所拥有的 -
答案 0 :(得分:6)
如果我没有弄错(我从未处理结构光),你需要i)恢复相机和激光之间的极线约束,ii)确定成像激光条纹中每个点的极线, iii)将该线与激光坐标中已知的激光条纹位置相交,并且iv)通过三角测量恢复3D信息。
为了获得最佳效果,您应该将激光条纹垂直于相机和激光器之间的平移矢量定向,因为这样,上面iii)中的交点得到很好的调节,因此在存在噪声的情况下最可靠地恢复。
答案 1 :(得分:0)
关于ssegvic帖子的一切都是正确的,但这可以说更容易。与立体相机校准类似,您需要在激光和相机之间进行校准。这在实践中通过对具有相对于参考平面的已知几何形状的对象执行测量然后求解图像坐标与对象坐标之间的映射来完成。完成此校准后,您可以使用生成的校准矩阵求解深度。
您可以使用许多可能的校准对象。我使用了一个黑色的平面,垂直于激光平面的白色细线。这将为您提供图像中的几个可以使用图像处理隔离的点。一旦你通过平移激光相机设备的位置收集了所需的所有点。然后,您可以在某个方向(朝向相机?)进行平移,同时跟踪平面深度的变化,因为这些代表了您需要从图像坐标映射到的真实世界坐标。您应该按照您选择的合理精细增量校准您计划测量的物体的深度或操作范围(避免外推)。