PCL庫的點雲濾波小結

2021-10-22 14:49:43 字數 1331 閱讀 5943

// create the filtering object

pcl::passthroughpass;

pass.setinputcloud(cloud);

pass.setfilterfieldname("z");

pass.setfilterlimits(0.0, 1.0);

pass.filter(*cloud_filtered);

// 建立過濾物件 

pcl::voxelgridsor;

sor.setinputcloud(cloud);

sor.setleafsize(0.01f,0.01f,0.01f);

sor.filter(*cloud_filtered);

// 建立過濾物件 

pcl::statisticaloutlierremovalsor;

sor.setinputcloud(cloud);

sor.setmeank(50);

sor.setstddevmulthresh(1.0);

sor.filter(*cloud_filtered);

// 構建過濾器 

pcl::radiusoutlierremovaloutrem;

outrem.setinputcloud(cloud);

outrem.setradiussearch(0.8);

outrem.setminneighborsinradius(2);

outrem.filter(*cloud_filtered);

顯然,不同的濾波器在濾波過程中,總是先建立乙個物件,再設定物件引數,最後呼叫濾波函式對點雲進行處理(點雲為智慧型指標指向的一塊區域)。

完整呼叫方法:

以 統計濾波器為例。將preprocess函式裡的函式體換成上面統計濾波器的內容即可。其他的照貓畫虎就行。

#include #include #include #include #include #include #include #include #include #include #include //for visualization

#include using namespace pcl;

using namespace std;

pointcloud::ptr preprocess(pointcloud::ptr cloud, float thre0, int thre1)

int main(int argc, char const *ar**)

PCL點雲直通濾波

對於在空間分布有一定空間特徵的點雲資料,比如使用線結構光掃瞄的方式採集點雲,沿z向分布較廣,但x,y向的分布處於有限範圍內。此時可使用直通濾波器,確定點雲在x或y方向上的範圍,可較快剪除離群點,達到第一步粗處理的目的。include include include int main int argc...

點雲 PCL點雲濾波與實現

目錄 直通濾波器 passthrough 條件濾波 conditional removal 球半徑濾波器 radiusoutlinerremoval 4 統計濾波器 statisticaloutlierremoval 5 體素降取樣 voxelgrid 均勻取樣 uniform sampling i...

PCL點雲濾波函式

如果使用線結構光掃瞄的方式採集點雲,必然物體沿z向分布較廣,但x,y向的分布處於有限範圍內。此時可使用直通濾波器,確定點雲在x或y方向上的範圍,可較快剪除離群點,達到第一步粗處理的目的。pcl passthroughpass pass.setinputcloud cloud pass.setfilt...