深度图和深度值
深度图和深度值
1.1 实际深度图与伪深度图
1.2 伪深度图:彩色深度图与灰度深度图
伪深度图之彩色深度图
伪深度图之灰度深度图
1.3 实际深度图
深度图通常存储为 16 位整数(即 uint16 类型),这与普通的图像(通常为 8 位整数,即 uint8 类型)不同。16 位整数的取值范围是 0 到 65535
使用 cv2.imread(depth_path, -1) 时,OpenCV 会按照文件本身的位深度(例如 16 位)来读取数据,而不会将其转换成常规的 8 位格式。因此,你得到的是原始的 16 位深度数据。如下图:
深度图中的值表示的是距离,并且通常以毫米(mm)为单位。例如,值为 6000 表示该像素点的深度为 6000 mm(6 米)。这与彩色图像的像素值不同,因为彩色图像的像素值仅表示颜色的亮度或强度,没有实际的物理意义。
数据集说明
深度图值转为实际物理距离
# 深度值[0,7851]
depth_map = cv2.imread(depth_path, -1) # 读取深度图
depth_map = cv2.resize(depth_map, (W, H), interpolation=cv2.INTER_NEAREST) # 缩放深度图到与RGB图片相同的大小
# 将深度转换为米
depth_shift = 21.845
# 深度值[0, 300多]
depth_maps = (np.array(depth_map) / depth_shift).astype(np.float32) # 转换深度图
实际物理距离= 深度图值 x 65535 3000 = 深度图值 x 21.845 \text{实际物理距离=}\frac{\text{深度图值}x}{\frac{65535}{3000}}=\frac{\text{深度图值}x}{21.845} 实际物理距离=300065535深度图值x=21.845深度图值x
综上,此数据集中实际物理距离与深度值的对应关系如下: