pcl庫中濾波器總結

2022-03-11 16:01:28 字數 2574 閱讀 6392

1 引言

在獲取點雲時由於裝置精度、操作者經驗、環境因素等帶來的影響,以及電磁波衍射的特性、被測物體表面性質變化和資料拼接配準操作過程的影響,點雲資料中將不可避免的出現一些雜訊點。在點雲處理流程中,濾波處理作為預處理的第一步,往往對後續處理管道影響很大,只有在濾波預處理中將雜訊點、離群點、孔洞、資料壓縮等按照後續處理定製,才能夠更好地經行配準、特徵提取、曲面重建、視覺化等後續應用處理。

2 pcl中相關演算法函式

2.1 直通濾波器

對某一維度實行乙個簡單的濾波,即去掉在使用者指定範圍內部或外部的點。

#include //

所需標頭檔案

pcl::passthrough

< point type > passname; //

建立濾波物件

passname.setinputcloud(cluod); //

setinputcloud;

passname.setfilterfileldname("

z"); //

設定過濾 'z'軸點(x,y 軸都可以,但是其他的譬如乙個旋轉軸沒試過)

passname.setfilterlimits(0.0,1.0); //

對z軸上(0,1)區間的點進行處理

passname.setfilterlimintsnegative(true or false); //

true 為濾掉z軸上(0,1)的點雲,false為儲存該範圍的點雲,即濾掉不屬於(0,1)上的點。不寫該函式,只寫上面一行**,則對是保留區間的點雲。原始碼中有一句話需要注意:this method will be removed in the future. use setnegative();

passname.filter(*cloud_out_filtered); //

執行濾波

圖一 pass_before

圖二 pass_after

2.2 使用voxelgrid濾波器對點雲進行下取樣

該演算法可以減少點的數量、減小點雲資料,並同時保持點雲的形狀特徵。

通過對輸入點雲資料建立乙個三維體素柵格,然後在每個體素內,用體素中所有點的重心來*似顯示體素中的其他店,這樣該體素中的所有點就用乙個重心點最終表示。

#include pcl::voxelgrid

downsample;

downsample.setinputcloud(cloud_in);

downsample.setleafsize(

0.1f,0.1f,0.1f);//

設定leaf size 為10cm的立方體

圖一點雲下取樣引數0.03,點雲數量337271;

圖2 為引數0.05的下取樣,點雲數量為121015。

2.3 統計濾波器

使用statisticaloutlierremoval濾波器移除離群點

對每個點的鄰域進行乙個統計分析,並修剪掉那些不符合一定標準的點。對每個點我們計算它到它的所有臨*點的*均距離。假設得到的結果是乙個高斯分布,其形狀由均值和標準差決定,*均距離在標準範圍(由全域性距離*均值和方差定義)之外的點,可被定義為離群點並從資料集中去掉。

#include pcl::statisticaloutlierremoval

sor;

sor.setinputcloud(cloud_in);

sor.setmeank(

50); //

set統計時考慮查詢*鄰點數;

sor.setstddevmulthresh(1.0); //

set 判斷是否為離群點的閾值;

sor.filter(*cloud_out_filtered); //

濾波後儲存點雲到 cloud_out_filtered;

sor.setnegative(true);//

得到離群點;

sor.filter(*cloud_out_removal); //

離群點儲存至 cloud_out_removal;

3 總結以上為常用的三種濾波器,當然後pcl/filters模組中還有其他方法,包括投影濾波pcl::projectinliers ;提取子集pcl::extractindices ;conditionalremoval 以及radiusoutlierremoval來通過設定條件來濾波,還有多邊形內部點雲提取crophull。學習pcl最好還是要上官網看文件:

PCL 直通濾波器

二 示例 三 結果展示 直通濾波的作用是過濾掉在指定維度方向上取值不在給定值域內的點,實現原理如下 首先,指定乙個維度以及該維度下的值域,其次,遍歷點雲中的每個點,判斷該點在指定維度上的取值是否在值域內,刪除取值不在值域內的點,最後,遍歷結束,留下的點即構成濾波後的點雲。直通濾波器簡單高效,適用於消...

PCL 統計濾波器

二 實現 三 結果展示 四 cloudcompare 雷射掃瞄通常會產生密度不均勻的點雲資料集,另外測量中的誤差也會產生稀疏的離群點,此時,估計區域性點雲特徵 例如取樣點處法向量或曲率變化率 時運算複雜,這會導致錯誤的數值,反過來就會導致點雲配準等後期的處理失敗。統計濾波器用於去除明顯離群點,離群點...

PCL體素濾波器

二 實現 三 結果展示 點雲幾何結構 不僅是巨集觀的幾何外形,也包括其微觀的排列方式,比如橫向相似的尺寸,縱向相同的距離。如果使用高解析度相機等裝置對點雲進行採集,往往點雲會較為密集。過多的點雲數量會對後續分割工作帶來困難。體素格濾波器可以達到向下取樣同時不破壞點雲本身幾何結構的功能。隨機下取樣雖然...