點雲濾波 條件濾波

2021-08-26 15:28:21 字數 1068 閱讀 5067

刪除點雲中不符合使用者指定的乙個或多個條件的資料點。

//建立條件限定下的濾波器

pcl::conditionand

>

::ptr range_cond(new pcl::conditionand

>);

//新增在z欄位上大於0的比較運算元

//gt greater than

//eq equal

//lt less than

//ge greater than or equal

//le less than

pcl::fieldcomparison

>

::constptr cond_1(new pcl::fieldcomparison

>("z", pcl::comparisonops

::gt, 0));

range_cond->addcomparison(cond_1);

pcl::fieldcomparison

>

::constptr cond_2(new pcl::fieldcomparison

>("z", pcl::comparisonops

::lt, 1));

range_cond->addcomparison(cond_2);

//建立濾波器並用條件定義物件初始化

pcl::conditionalremoval

> condrem;

condrem.setcondition(range_cond);

condrem.setinputcloud(pointcloud_raw);

設定保持為結構點雲

condrem.filter(*pointcloud_filter);

condrem.setkeeporganized(true);

設定是否保留濾波後刪除的點,以保持點雲的有序性,通過setuserfiltervalue設定的值填充點雲;或從點雲中刪除濾波後的點,從而改變其組織結構

如果設定為true且不設定setuserfiltervalue的值,則用nan填充點雲

點雲濾波 直通濾波

最簡單的例子 按高度篩選點雲 pcl passthrough pointxyz pass pass.setinputcloud pointcloud raw pass.setfilterfieldname z 設定過濾時所需要點雲型別的z欄位 pass.setfilterlimits 0.1,10 ...

點雲濾波 extract indices濾波

基於某一分割演算法提取點雲中的乙個子集。pcl modelcoefficients ptr coefficients new pcl modelcoefficients pcl pointindices ptr inliers new pcl pointindices pcl sacsegmenta...

點雲濾波 直通濾波器

對於在空間分布有一定空間特徵的點雲資料,比如使用線結構光掃瞄的方式採集點雲,沿z向分布較廣,但x,y向的分布處於有限範圍內。此時可使用直通濾波器,確定點雲在x或y方向上的範圍,可較快剪除離群點,達到第一步粗處理的目的。直通濾波器,顧名思義,就是在點雲的指定維度上設定乙個閾值範圍,將這個維度上的資料分...