如果使用線結構光掃瞄的方式採集點雲,必然物體沿z向分布較廣,但x,y向的分布處於有限範圍內。此時可使用直通濾波器,確定點雲在x或y方向上的範圍,可較快剪除離群點,達到第一步粗處理的目的。
pcl::passthroughpass;
pass.setinputcloud (cloud);
pass.setfilterfieldname ("z");
pass.setfilterlimits (0.0, 1.0);
(true);
pass.filter (*cloud_filtered);
統計(statistic)濾波器用於去除明顯離群點(離群點往往由測量雜訊引入)。其特徵是在空間中分布稀疏,可以理解為:每個點都表達一定資訊量,某個區域點越密集則可能資訊量越大。雜訊資訊屬於無用資訊,資訊量較小。所以離群點表達的資訊可以忽略不計。考慮到離群點的特徵,則可以定義某處點雲小於某個密度,既點雲無效。計算每個點到其最近的k個點平均距離。則點雲中所有點的距離應構成高斯分布。給定均值與方差,可剔除3∑之外的點。
pcl::statisticaloutlierremovalsor; //建立濾波器物件
sor.setinputcloud (cloud);
sor.setmeank (50);
//大於x倍標準方差的點濾除。 standard deviation標準偏差, 1-0.68 2-0.95 3-0.997
sor.setstddevmulthresh (1.0);
sor.filter(*cloud_filtered);
半徑濾波器與統計濾波器相比更加簡單粗暴。 以某點為中心畫乙個圓計算落在該圓中點的數量,當數量大於給定值時,則保留該點,數量小於給定值則剔除該點。 此演算法執行速度快,依序迭代留下的點一定是最密集的,但是圓的半徑和圓內點的數目都需要人工指定。
pcl::radiusoutlierremovaloutrem;
outrem.setinputcloud(cloud);
outrem.setradiussearch(0.8);
outrem.filter (*cloud_filtered);
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庫的點雲濾波小結
create the filtering object pcl passthroughpass pass.setinputcloud cloud pass.setfilterfieldname z pass.setfilterlimits 0.0,1.0 pass.filter cloud filt...