// 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...