我正在尝试使用 OSD 数据集链接:http : //www.acin.tuwien.ac.at/forschung/v4r/software-tools/osd/ 它使用 kinect v1 生成深度图图像。我已经读到深度图图像中的值应该在 0-2048 之间,这些值的单位是毫米。但是,当我尝试使用上述数据集中的深度图图像时,我得到的值超过 2048(我在 0-5200 的区域内,我使用 opencv 来读取这些图像)
original_image
深度图像
最小视差值:0
最大视差值:3475
我用来规范化此图像的代码,以便我可以看到一些有意义的灰度深度图像
img_depth = cv2.imread("depth_map.png",-1)
depth_array = np.array(img_depth, dtype=np.float32)
frame = cv2.normalize(depth_array, depth_array, 0, 1, cv2.NORM_MINMAX)
cv2.imwrite('capture_depth.png',frame*255)
我有一组问题:
为什么我们的值高于 2048?
为什么我们在图像的两侧有一个黑色区域(我的猜测是 RGB 相机和激光传感器的角度不同,所以需要进行这种转换以便正确映射,但是,我不确定,因为我已经尝试过具有不同的 RGBD 数据集,并且这些边缘处的黑色区域出现不同)
在图像中心填充这些黑洞的最佳方法是什么?(我对这些黑洞的理解是它们的出现是由于在这些点没有测量深度)
我想使用 RGB 和深度图像生成立体对,我能做到最好吗?(目前我正在使用 Triaxes StereoTracer 生成立体图像)