我正在从事立体视觉任务,我想获得立体视觉相机和物体之间的距离。我使用Matlab与计算机视觉系统工具箱。
使用“Matlab摄像机标定工具箱”对摄像机进行了标定,得到了左、右摄像机的内在参数和外部参数(右摄像机的位置、wrt左摄像机的位置)。我也有一对校正的图片和他们的视差图。对于视差的估计,我使用了Matlab函数视差(Matlab)。我知道相机的基线和焦距,但我的结果仍然是错误的。
baseline = 70 mm
focal length = 25 mm
disparity = 60 pixels
---------------------
depth = baseline * focal length / disparity = 70 * 25 / 60 = 29 mm但我知道距离是cca 600毫米。这个公式对吗?单位呢?mm * mm / pixel != mm。特别是我想用相机矩阵(内在参数)来计算,但我不知道如何计算。我会感谢任何暗示。
发布于 2013-11-13 15:03:28
就像你说的,你必须把这个单位转换成毫米。为此,您需要这个公式
z = (b*F) / (d*s)
mm = (mm * mm) / (pixel * (mm/pixel)) 哪里
编辑
有时你的焦点是像素,所以你不需要使用传感器的大小。所以就用你的公式:
z = b*F / d
mm = mm * pixel / pixelhttps://stackoverflow.com/questions/19956910
复制相似问题