PCL:压平地平面但保持距离地面

时间:2015-09-07 07:52:48

标签: point-cloud-library liblas

根据LiDAR数据,我用PMF分离了地面和非地面点。现在我想要平整所有地面点(z = 0)但是要保持所有非地面点的距离高于地面。这可以使用LASground -replace_z在LASTools中完成。

想要的结果如下图所示。

Image of wanted output

1 个答案:

答案 0 :(得分:0)

基本上你想将地形Z值“标准化”到地面。 您可以使用地面点创建地面模型 - 例如带有单元格的网格 - 也就是栅格 - 保存地面Z值的插值,然后将所有点减去该值。只需在XY边界框上构建一个网格;下面是一个90 X 100网格的例子:

int nRowCells = 100;
int nColCells = 90;
vector< vector <float> > grid;
for(int i=0; i < nRowCells; ++i)
 {
   std::vector<coord> row(nColCells, .0f);
   grid.push_back( row );        
 }

然后使用其坐标和单元格分辨率将每个地面点分配给一个单元格。

顺便说一下,在LasTools中,这可以用于“lasheight”模块,如果你进行一些Google操作,你会读到它是如何工作的。