点云有序化

功能描述

利用相机内参,将输入的、通常为无序的相机坐标系点云转换为有序点云。

转换后的点云在结构上形成一个二维网格,原始点云中的三维点会被映射到这个二维网格的相应位置。

如果网格中的某些位置在原始点云中没有对应的三维点,这些位置将被标记为无效值 (NaN)。

使用场景

  • 与2D图像对齐 : 将3D点云数据与同一相机在相同视角下拍摄的2D图像在像素级别上关联,例如,为图像的每个像素查找对应的深度值或3D坐标,或者将图像颜色赋予点云。

  • 生成深度图 : 有序点云中的Z坐标(深度信息)可以直接提取或经过简单变换后生成一张与参考图像对齐的深度图。

  • 应用2D图像处理算法 : 某些针对2D图像设计的滤波、特征提取等算法,可以在点云有序化后,应用于转换后的数据结构上(例如,对有序点云的深度值进行2D均值滤波)。

输入输出

输入项

图像:参考图像。

相机坐标系点云:一个或多个点云的列表。

相机内参:相机内参矩阵。

输出项

有序化点云:经过有序化处理的点云。如果输入的是点云列表,输出也将是对应每个输入点云的有序化点云列表。

参数说明

该算子有两个版本:

  • 点云有序化 : 处理不带法线信息的点云。

  • 点云有序化(带法向) : 处理带有法线信息的点云。

两者核心功能和参数完全相同,仅处理的点云数据类型不同。

合并输入点云

参数说明

用于控制当输入点云列表时,是否先将列表中的所有点云合并成一个单一的、大的点云,然后再进行有序化处理。

调参说明

  • 关闭(默认):如果输入点云是一个包含多个点云的列表,算子将独立地对每个点云进行有序化处理。输出的有序点云也将是一个列表,包含相应数量的有序点云。适用于希望对多个独立的点云分别进行有序化的情况。

  • 开启:如果输入的点云是一个点云列表,算子会首先将这个列表中的所有点云数据组合成一个单一的点云。然后再对这个合并后的点云执行有序化操作。输出的结果将是一个只包含一个有序点云的列表。适用于一个场景的多个点云片段,希望将其视为一个整体来生成一个统一的有序视图时,可以开启此选项。

是否对齐图像尺寸

参数说明

此参数用于控制输出的有序点云的二维尺寸(宽度和高度)是否严格与输入的图像尺寸一致。

调参说明

  • 关闭(默认):输出的有序点云尺寸将根据实际点云数据通过相机内参投影到图像平面后的覆盖范围来确定。这意味着输出点云的宽度和高度可能与输入图像的原始尺寸不完全相同,但会确保所有能够有效投影的点都包含在一个尽可能紧凑的二维网格中。

  • 开启:输出的有序点云的宽度和高度将严格与输入的图像尺寸保持一致。这种情况下,如果某些三维点投影到图像范围之外,这些点将不会出现在输出的有序点云中。适用于需要生成的有序点云(例如深度图)能够与原始图像在像素上一一精确对应的场景,可选择开启此选项。