【点云StatisticalOutlierFilter】python-pcl:去除离群点
生活随笔
收集整理的這篇文章主要介紹了
【点云StatisticalOutlierFilter】python-pcl:去除离群点
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
點云去除離群點
方法:StatisticalOutlierFilter
原理:使用K近鄰方法找到點云中每個點k近鄰,計算出標準距離;設置倆個點之間距離超過標準距離*std倍數的為離群點。
結果:將點云分為倆部分,內點以及離群點。通過設置 set_negative 可保存離群點的點云文件,也可保存內點點云文件。
官方示例效果如下:
原始點云:
內點點云:
離群點云:
可以看到柱子腿旁邊的離散的點被去掉了。
官方數據集的效果比較好,具體應用到自己的數據集上,點云密度太大,一個是耗時,另一個效果也不是那么好。
# -*- coding: utf-8 -*-
# http://pointclouds.org/documentation/tutorials/statistical_outlier.php
# http://svn.pointclouds.org/data/tutorials/table_scene_lms400.pcd# <離群點去除,并分別存儲不同的文件>
import pcldef main():p = pcl.load("D:/tests/tutorials/table_scene_lms400.pcd")# 使用K近鄰的50個點計算標準距離,距離超過標準距離1倍的被認為是離群點fil = p.make_statistical_outlier_filter()fil.set_mean_k(50)fil.set_std_dev_mul_thresh(1.0)pcl.save(fil.filter(),"D:/tests/tutorials/table_scene_lms400_inliers.pcd")fil.set_negative(True) #保存不滿足條件的,即離群點文件pcl.save(fil.filter(),"D:/tests/tutorials/table_scene_lms400_outliers.pcd")if __name__ == "__main__":main()
總結
以上是生活随笔為你收集整理的【点云StatisticalOutlierFilter】python-pcl:去除离群点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用OpenCV,Python和dlib
- 下一篇: 使用Python,OpenCV,dlib