基於某一分割演算法提取點雲中的乙個子集。
pcl::modelcoefficients
::ptr coefficients(new pcl::modelcoefficients());
pcl::pointindices
::ptr inliers(new pcl::pointindices());
pcl::sacsegmentation
> seg; //建立分割物件
seg.setoptimizecoefficients(true); //設定對估計的模型引數進行優化處理
seg.setmodeltype(pcl::sacmodel_plane); //設定分割模型類別
seg.setmethodtype(pcl::sac_ransac); //設定用哪個隨機引數估計方法
seg.setmaxiterations(1000); //設定最大迭代次數
seg.setdistancethreshold(0.01); //設定判斷是否為模型內點的距離閾值
pcl::extractindices
> extract;
extract.setinputcloud(pointcloud_raw);
extract.setindices(inliers);//設定分割後的內點為需要提取的點集
extract.setnegative(false); //設定提取內點而非外點
extract.filter(*pointcloud_filter);
點雲濾波 直通濾波
最簡單的例子 按高度篩選點雲 pcl passthrough pointxyz pass pass.setinputcloud pointcloud raw pass.setfilterfieldname z 設定過濾時所需要點雲型別的z欄位 pass.setfilterlimits 0.1,10 ...
點雲濾波 條件濾波
刪除點雲中不符合使用者指定的乙個或多個條件的資料點。建立條件限定下的濾波器 pcl conditionand ptr range cond new pcl conditionand 新增在z欄位上大於0的比較運算元 gt greater than eq equal lt less than ge g...
點雲濾波 直通濾波器
對於在空間分布有一定空間特徵的點雲資料,比如使用線結構光掃瞄的方式採集點雲,沿z向分布較廣,但x,y向的分布處於有限範圍內。此時可使用直通濾波器,確定點雲在x或y方向上的範圍,可較快剪除離群點,達到第一步粗處理的目的。直通濾波器,顧名思義,就是在點雲的指定維度上設定乙個閾值範圍,將這個維度上的資料分...