我正在寻找一个可以给我一个方法的开源项目或库(c ++,c) 计算图像中某个物体(像素)的距离, 假设我有关于相机的所有信息 - 视野,焦距,相机之间的距离等。
答案 0 :(得分:10)
我正在寻找一个开源项目或库(c ++,c),它可以为我提供一种方法来计算图像中某个对象(像素)的距离,假设我有关于相机的所有信息 - 视野,焦距,相机之间的距离等。
根据“等”究竟是什么,解决方案介于简单和不可能之间。
如果你有完全校准的摄像机(内在参数+相对外部参数),计算距离是计算和交叉两条视线的问题。视线直接跟随所有已知参数和像素位置。相交它们是用4个方程和3个未知数解决线性最小二乘问题的问题。
如果你只有内在的摄像机参数(最多五个自由度,通常是一个上三角形的3x3矩阵)和摄像机之间的距离,你需要首先为两个摄像机的相对姿势重建剩余的5个自由度。这可以通过计算一组点对应的“基本矩阵”F并将其除以已知的kamera矩阵来完成,这样就可以得到“基本矩阵”E.这个矩阵可以进一步考虑到旋转和交叉积矩阵中。这将告诉您第二台摄像机相对于第一台摄像机的位置。将此与摄像机之间的已知距离相结合,您将能够计算“您看到”的事物的度量重建。
如果您甚至不知道所有内在参数,则无法计算度量重建,而只能计算某种“投影重建”。但那不是你想要的。
建议阅读:Hartley和Zisserman的多视图几何