刪除點雲中不符合使用者指定的乙個或多個條件的資料點。
//建立條件限定下的濾波器
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方向上的範圍,可較快剪除離群點,達到第一步粗處理的目的。直通濾波器,顧名思義,就是在點雲的指定維度上設定乙個閾值範圍,將這個維度上的資料分...