PCL點雲濾波函式

2021-09-25 15:00:22 字數 1124 閱讀 6779

如果使用線結構光掃瞄的方式採集點雲,必然物體沿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...