我一直在遵循一些在线教程,从成对的立体图像生成深度贴图,结果好坏参半。经过立体校准和校正相机后,我得到了0.514的极线误差。然而,在对图像进行所有校准和校正之后,得到的视差/深度贴图仍然非常嘈杂
def get_rectified_pair(img_left, img_right):
img_left_rectified = cv2.remap(img_left, undistortion_map_left,
rectification_map_left,
cv2.INTER_NEAREST)
img_right_rectified = cv2.remap(img_right, undistortion_map_right,
rectification_map_right,
cv2.INTER_NEAREST)
def get_disparity(img_left, img_right):
img_left_rectified, img_right_rectified = get_rectified_pair(img_left, img_right)
stereo = cv2.StereoSGBM_create(numDisparities=80, blockSize=21)
disparity = stereo.compute(img_left_rectified, img_right_rectified)
return (disparity / 16).astype(disparity.dtype)
disparity = get_disparity(*get_image_pair(1))
plt.figure(figsize=(10, 6))
plt.imshow(disparity, cmap='gray')
plt.show()
最佳视差图如下所示:
在使用cv2.reprojectImageTo3d
将视差贴图转换为深度贴图后,它似乎可以很好地区分3-5英尺和10英尺以外的对象,但对于所有以3-5英尺为中心的对象来说,效果并不理想
这些视差图和深度值是典型的极线误差0.514吗?如果没有,我该如何改进这些结果
目前没有回答
相关问题 更多 >
编程相关推荐