Matlab 在三维点云上施加体素网格

Matlab 在三维点云上施加体素网格,matlab,points,kdtree,voxel,octree,Matlab,Points,Kdtree,Voxel,Octree,我正在处理结构化2.5D和非结构化3D数据,这些数据通常在(X、Y、Z)坐标系下可用,即点云。现在我想在数据上施加一个规则的体素网格。这不是为了可视化,而是为了“清理”或融合数据。我想象这样的情况,例如3个点落在一个体素的体积内。然后,我的目标是将这个体素设置为“激活”并丢弃3个原始点,或者我想计算点的欧几里德平均值,并再次将这样“清理”的点云作为不规则结构的点云返回 我希望我能把我的意图说清楚:这不是关于可视化,也不一定是关于使用体积立方体而不是点。它只是以结构化的方式操纵可能不规则的点云 在

我正在处理结构化2.5D和非结构化3D数据,这些数据通常在(X、Y、Z)坐标系下可用,即点云。现在我想在数据上施加一个规则的体素网格。这不是为了可视化,而是为了“清理”或融合数据。我想象这样的情况,例如3个点落在一个体素的体积内。然后,我的目标是将这个体素设置为“激活”并丢弃3个原始点,或者我想计算点的欧几里德平均值,并再次将这样“清理”的点云作为不规则结构的点云返回

我希望我能把我的意图说清楚:这不是关于可视化,也不一定是关于使用体积立方体而不是点。它只是以结构化的方式操纵可能不规则的点云


在这种情况下,我正在考虑基于kd树或八叉树的解决方案,但有人能为我指出正确的方向吗?暗示现有的MATLAB实现将是最受欢迎的

如果数据间隔不规则,则您要使用的是平滑和插值数据点的东西。一个很好的方法是高斯过程回归

实际上,我对插值不是很感兴趣,而是将不规则点云“体素化”为规则网格。平滑、插值、分块、体素化。。。它们都是一样的基本东西。使用高斯过程,将平滑曲面拟合到数据点,然后在规则间隔的三维网格上计算平滑曲面,以获得体素化。很简单,我明白。然而,这并不是我一直在寻找的解决方案,有几个原因:1)我一开始不想操纵原始点。我知道我可以对它们进行加权,这样它们就不会在插值过程中进行调整,但是我可以放弃插值过程。2) 我不想创建任何新点,只想对原始点进行体素化。3) 我研究过一阶和二阶高斯-马尔可夫过程,但仅限于一维。我还没有想到如何将它们扩展到3D案例。