深度图像和距离图像
目录
有博客说 深度图就是距离图像
chat gpt 说不一样
waymo数据格式解析代码注释,但是没考证
有博客说 深度图就是距离图像
【点云处理技术之PCL】range image——创建深度图像并可视化_pcl createfrompointcloud-CSDN博客
chat gpt 说不一样
距离图像(Range Image) 和 深度图(Depth Map) 是相似的概念,但它们有细微区别:
-
深度图 通常是基于相机视角生成的,它表示图像中每个像素的深度(距离)到相机的垂直距离,即到图像平面的距离。
-
距离图像 更常用于激光雷达、雷达等传感器,它表示从传感器发射点到场景中每个点的实际距离,不限于垂直方向。
总体来说,深度图与距离图都用于描述场景的深度信息。
waymo数据格式解析代码注释,但是没考证
def parse_range_image_and_camera_projection(laser, second_response=False):"""解析指定激光传感器的距离图像(range image)和相机投影(camera projection)。参数:- laser: Waymo 数据集中的激光传感器对象,包含距离图像和相机投影信息。- second_response: 布尔值。如果为 True,返回第二强的响应(second strongest response),否则返回主要响应(primary response)。第二强的响应可能有助于识别物体边缘。返回:- ri: 距离图像,包含传感器到场景点的距离信息。- camera_projection: 相机投影,表示场景中的每个点在相机图像上的投影位置。- range_image_pose: 距离图像的姿态信息,表示每个点的位置信息。"""range_image_pose = None # 存储距离图像的姿态信息camera_projection = None # 存储相机投影信息if not second_response:# 返回最强响应,如果存在该响应的数据if len(laser.ri_return1.range_image_compressed) > 0:# 解压缩并解析最强响应的距离图像ri = dataset_pb2.MatrixFloat()ri.ParseFromString(zlib.decompress(laser.ri_return1.range_image_compressed))# 将解压后的数据转换为 numpy 数组并重新调整为正确的形状ri = np.array(ri.data).reshape(ri.shape.dims)# 检查激光传感器是否为顶部激光(如 Waymo 中的顶层激光传感器)if laser.name == dataset_pb2.LaserName.TOP:# 解压缩并解析距离图像的姿态信息range_image_top_pose = dataset_pb2.MatrixFloat()range_image_top_pose.ParseFromString(zlib.decompress(laser.ri_return1.range_image_pose_compressed))# 将姿态信息转换为 numpy 数组并重新调整为正确的形状range_image_pose = np.array(range_image_top_pose.data).reshape(range_image_top_pose.shape.dims)# 解压缩并解析相机投影信息camera_projection = dataset_pb2.MatrixInt32()camera_projection.ParseFromString(zlib.decompress(laser.ri_return1.camera_projection_compressed))# 将相机投影数据转换为 numpy 数组并重新调整为正确的形状camera_projection = np.array(camera_projection.data).reshape(camera_projection.shape.dims)else:# 返回第二强的响应,如果存在该响应的数据if len(laser.ri_return2.range_image_compressed) > 0:# 解压缩并解析第二强响应的距离图像ri = dataset_pb2.MatrixFloat()ri.ParseFromString(zlib.decompress(laser.ri_return2.range_image_compressed))# 将解压后的数据转换为 numpy 数组并重新调整为正确的形状ri = np.array(ri.data).reshape(ri.shape.dims)# 解压缩并解析相机投影信息camera_projection = dataset_pb2.MatrixInt32()camera_projection.ParseFromString(zlib.decompress(laser.ri_return2.camera_projection_compressed))# 将相机投影数据转换为 numpy 数组并重新调整为正确的形状camera_projection = np.array(camera_projection.data).reshape(camera_projection.shape.dims)# 返回距离图像、相机投影和姿态信息return ri, camera_projection, range_image_pose