我正在尝试使用以下代码来计算物体与相机的距离。
因此,方法是计算矩阵格式的左右图像的视差。
得到视差后,我将使用以下公式:深度=基线*焦距/视差
这里有两个问题:
将numpy导入为np
导入系统
导入cv2
从matplotlib导入pyplot作为plt
%matplotlib内联
imgL = cv2.imread('C:/ Users / Akash Jain / Documents / ZED / LeftDepth / left000005.png',0)
imgR = cv2.imread('C:/ Users / Akash Jain / Documents / ZED / RightDepth / right000005.png',0)
立体声= cv2.StereoBM_create(numDisparities = 16,blockSize = 5)
视差= stereo.compute(imgL,imgR)
D = 0.12 * 0.70 * 672 /视差
打印(“视差”,视差)
打印(“深度”,D)
plt.imshow(视差,'灰色')
plt.show()
最佳答案
简单的Depth = Baseline * focal length/ Disparity
公式仅在摄像机轴平行的情况下有效。假设您的匹配良好,则采用趾(会聚轴)相机会在图像平面的某些部分造成负视差。
但是,您发布的视差图像似乎也很差,这使我怀疑您的匹配也很差:在您的场景下,视差在低中部如此剧烈地摆动是否合理?
关于python - 使用立体图上的视差图计算实际距离,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58777344/