使用统计异常消除滤波器来消除异常
生活随笔
收集整理的這篇文章主要介紹了
使用统计异常消除滤波器来消除异常
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
激光掃描可以生成很多點云的數據集。并且,測量誤差會導致一些稀疏的異常值使得結果更差。這使得局部點云特征估計變得更加的復雜,產生一些錯誤的值,使得點云的識別失敗。有些不規則的數據可以通過數理統計的方法來消除。我們稀疏異樣消除是以計算輸入集的點的近鄰分布來進行的。我們假設分布是標準正太分布,所有在分布區間外的點都被當成異常點。下面的圖展示了稀疏異常分析與消除,原來的數據集在左邊,結果在右邊。下面的圖顯示了在濾波之前的K個最近鄰的平均距離。
下面是代碼
我們創建了一個pcl::StatisticalOutlierRemoval這個濾波器。每個點的近鄰分析的數量被設置為50,標準差是1.這意味著,只要有一個點的距離大于1個標準差的平均距離,這個點就會被當成異樣點并被去除。
// Create the filtering objectpcl::StatisticalOutlierRemoval<pcl::PointXYZ> sor;sor.setInputCloud (cloud);sor.setMeanK (50);sor.setStddevMulThresh (1.0);sor.filter (*cloud_filtered);并把正常的點存儲到磁盤里面
pcl::PCDWriter writer;writer.write<pcl::PointXYZ> ("table_scene_lms400_inliers.pcd", *cloud_filtered, false);對負的值進行過濾
sor.setNegative (true);sor.filter (*cloud_filtered);添加到相同的文件里面
writer.write<pcl::PointXYZ> ("table_scene_lms400_outliers.pcd", *cloud_filtered, false); 總結
以上是生活随笔為你收集整理的使用统计异常消除滤波器来消除异常的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 详细分析如何利用python批量爬取百度
- 下一篇: mac下一些终端命令的使用