在保持形状的同时将点云下采样到特定数量的点
Downsampling point clouds to specific number of points while retaining shape
环境:Python-PCL,WIndows10,Python3.6
我需要将点云采样到特定数量的点。这些点云的大小各不相同,因此我被卡住了。通过文档,我了解到只有
VoxelGrid
、ConditionalOutlierRemoval
、StatisticalOutlierRemoval
和 RadiusOutlierRemoval
是可用的选项。
在VoxelGrid中,叶子的大小并不能保证点的数量,去除Radius对保持形状没有帮助,而统计异常值主要有助于去除噪声。
有什么解决办法吗?可以用numpy.random.choice()
期待奇迹吗?
编辑:numpy.random.choice
有效,但前提是您不关心点云的几何形状,我很关心。无论如何要动态使用 VoxelGrid?
很遗憾,答案是否定的。使用 PCL 的 VoxelGrid 的输出点数始终是占用体素数的函数。控制占用体素数量的唯一方法是改变叶大小,没有动态方法可以做到这一点。
或者,您可能会幸运地使用最远点采样,因为它可以让您 select N 点并且具有很好的蓝噪声特性,但据我所知,这在 PCL.
环境:Python-PCL,WIndows10,Python3.6
我需要将点云采样到特定数量的点。这些点云的大小各不相同,因此我被卡住了。通过文档,我了解到只有
VoxelGrid
、ConditionalOutlierRemoval
、StatisticalOutlierRemoval
和 RadiusOutlierRemoval
是可用的选项。
在VoxelGrid中,叶子的大小并不能保证点的数量,去除Radius对保持形状没有帮助,而统计异常值主要有助于去除噪声。
有什么解决办法吗?可以用numpy.random.choice()
期待奇迹吗?
编辑:numpy.random.choice
有效,但前提是您不关心点云的几何形状,我很关心。无论如何要动态使用 VoxelGrid?
很遗憾,答案是否定的。使用 PCL 的 VoxelGrid 的输出点数始终是占用体素数的函数。控制占用体素数量的唯一方法是改变叶大小,没有动态方法可以做到这一点。
或者,您可能会幸运地使用最远点采样,因为它可以让您 select N 点并且具有很好的蓝噪声特性,但据我所知,这在 PCL.