三维重建9:点云图像的滤波方法小结
????? ? 摘抄下來,如有不適,請告知刪除。
??????? 原文鏈接:PCL—低層次視覺—點云濾波(初步處理)
??????? 若非涉及到數據精度級別的底層處理,使用離群點去除算法就可以了。
點云濾波的概念
點云濾波是點云處理的基本步驟,也是進行 high level 三維圖像處理之前必須要進行的預處理。其作用類似于信號處理中的濾波,但實現手段卻和信號處理不一樣。我認為原因有以下幾個方面:
綜上所述,點云濾波只在抽象意義上與信號,圖像濾波類似。因為濾波的功能都是突出需要的信息。
點云濾波的方法
PCL常規濾波手段均進行了很好的封裝。對點云的濾波通過調用各個濾波器對象來完成。主要的濾波器有直通濾波器,體素格濾波器,統計濾波器,半徑濾波器?等。不同特性的濾波器構成了較為完整的點云前處理族,并組合使用完成任務。實際上,濾波手段的選擇和采集方式是密不可分的。
實際上點云濾波的手段和傳統的信號濾波與圖像濾波在自動化程度,濾波效果上還有很大的差距。學者大多關注圖像識別與配準算法在點云處理方面的移植,而對濾波算法關注較少。其實點云前處理對測量精度與識別速度都有很大影響。
?
點云庫對濾波算法的實現
點云庫中已經包含了上述所有濾波算法。PCL濾波算法的實現是通過濾波器類來完成的,需要實現濾波功能時則新建一個濾波器對象并設置參數。從而保證可以針對不同的濾波任務,使用不同參數的濾波器對點云進行處理。
直通濾波器:
// Create the filtering object pcl::PassThrough<pcl::PointXYZ> pass; pass.setInputCloud (cloud); pass.setFilterFieldName ("z"); pass.setFilterLimits (0.0, 1.0); //pass.setFilterLimitsNegative (true); pass.filter (*cloud_filtered);體素濾波器:
// Create the filtering objectpcl::VoxelGrid<pcl::PCLPointCloud2> sor;sor.setInputCloud (cloud);sor.setLeafSize (0.01f, 0.01f, 0.01f);sor.filter (*cloud_filtered);統計濾波器:
// Create the filtering objectpcl::StatisticalOutlierRemoval<pcl::PointXYZ> sor;sor.setInputCloud (cloud);sor.setMeanK (50);sor.setStddevMulThresh (1.0);sor.filter (*cloud_filtered); 半徑濾波器: // build the filterpcl::RadiusOutlierRemoval<pcl::PointXYZ> outrem;outrem.setInputCloud(cloud);outrem.setRadiusSearch(0.8);outrem.setMinNeighborsInRadius (2);// apply filteroutrem.filter (*cloud_filtered); 顯然,不同的濾波器在濾波過程中,總是先創建一個對象,再設置對象參數,最后調用濾波函數對點云進行處理(點云為智能指針指向的一塊區域)總結
以上是生活随笔為你收集整理的三维重建9:点云图像的滤波方法小结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 地球末日b堡怎么打 地球唯一的天然卫星
- 下一篇: 烟雨江湖南岭怎么去