點雲濾波 投影濾波器

2021-10-01 01:34:31 字數 2149 閱讀 7462

適用於已知幾何模型的點雲濾波,根據幾何模型的數學約束進行投影

例如乙個球體通過3d掃瞄裝置掃瞄之後,由於掃瞄精度的限制,引入了很多雜散點,這時已知實際球體的各個引數,可以用指定引數的球模型進行投影濾波,去除雜訊。

點雲資料中的所有點 都用 向引數模型上投影之後的點代替。

//使用ax+by+cz+d=0平面模型

//create a set of planar coefficients with a=b=d=0,c=1,即平面z=0

pcl::modelcoefficients::ptr coefficients (new pcl::modelcoefficients ());

coefficients->values.resize (4);

coefficients->values[0] = coefficients->values[1] = 0;

coefficients->values[2] = 1.0;

coefficients->values[3] = 0;

// create the filtering object

pcl::projectinliersproj; //建立投影濾波物件

proj.setmodeltype (pcl::sacmodel_plane); //設定模型型別

proj.setinputcloud (cloud); //設定輸入的點雲

proj.setmodelcoefficients (coefficients); //設定模型引數

proj.filter (*cloud_projected); //執行濾波

完整**:

#include #include #include #include #include int main (int argc, char** ar**)

std::cerr << "cloud before projection: " << std::endl;

for (size_t i = 0; i < cloud->points.size (); ++i)

std::cerr << " " << cloud->points[i].x << " "

<< cloud->points[i].y << " "

<< cloud->points[i].z << std::endl;

// create a set of planar coefficients with x=y=0,z=1

pcl::modelcoefficients::ptr coefficients (new pcl::modelcoefficients ());

coefficients->values.resize (4);

coefficients->values[0] = coefficients->values[1] = 0;

coefficients->values[2] = 1.0;

coefficients->values[3] = 0;

// create the filtering object

pcl::projectinliersproj;

proj.setmodeltype (pcl::sacmodel_plane);

proj.setinputcloud (cloud);

proj.setmodelcoefficients (coefficients);

proj.filter (*cloud_projected);

std::cerr << "cloud after projection: " << std::endl;

for (size_t i = 0; i < cloud_projected->points.size (); ++i)

std::cerr << " " << cloud_projected->points[i].x << " "

<< cloud_projected->points[i].y << " "

<< cloud_projected->points[i].z << std::endl;

return (0);

}

projecting points using a parametric model

點雲濾波 直通濾波器

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

點雲濾波 半徑濾波器

濾除離群點的一種濾波方法。通過設定濾波半徑,計算每個點在其半徑範圍內的其他點的個數。半徑範圍內其他點個數少於某一設定的閾值的點將被濾除。如上圖所示,假設設定半徑為d,分別考察黃色 藍色和綠色的三個點。若設定點個數閾值為1,則黃色點將被濾除 若設定點個數閾值為2,則黃色點和綠色點都將被濾除。pcl r...

PCL點雲濾波(直通濾波器與統計濾波器)

利用pcl中的直通濾波器和統計濾波器對原始點雲資料進行濾波處理。通過直通濾波器將z軸方向上範圍之外的點濾除 在背景與前景有一定距離的情況下,可以除掉背景 再利用統計濾波器去除離群點 雜訊點 濾波效果視資料和濾波引數而定。include include include include include ...