基于邻域统计分析的点云去噪方法
- 基本原理:如果一个点的邻域(NumNeighbors个最近点)与它的平均距离显著大于全局均值,则它可能是噪声或离群点,将被移除。
- 邻域大小直接影响去噪灵敏度与鲁棒性:
- 数值太小:统计不充分、容易误杀细节点;
- 数值太大:统计过于平滑,细节及边界点易被忽视,去噪效果可能受影响。
ptCloud = pcread('bunny\bunny\data\bun000.ply'); [denoisedCloud, inlierIndices, outlierIndices] = pcdenoise(ptCloud, 'NumNeighbors', 20, 'Threshold', 1.5); subplot(1,2,1); pcshow(ptCloud); title('原始'); subplot(1,2,2); pcshow(denoisedCloud); title('去噪');
参数解释
'NumNeighbors', 20
表示每个点查询20个邻域近邻进行统计分析。'Threshold', 1.5
表示阈值设置为均值 + 1.5倍标准差(点的平均距离超过该值即判为离群点)。