我正在尝试使用OSD数据集链接:http://www.acin.tuwien.ac.at/forschung/v4r/software-tools/osd/,它使用kinect v1生成深度图图像。我已经读过深度图图像中的值应该在0-2048之间,这些值的单位是mm。但是,当我尝试使用上面提到的数据集中的深度图图像时,我得到的值超过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生成立体图像)