PCL编程-点云采样

1 点云复制:copyPointCloud

copyPointCloud(*cloud_in,*cloud_out);
cloud_in,cloud_out分别为输入输出的点云指针。


2 点云采样

void pcl::copyPointCloud  ( const PointCloud &   cloud_in,  
  			    const std::vector< int > &  indices,  
                            PointCLoud & cloud_out  ) 

通过indices存储需要复制的点索引。通过构建indices,便可实现任意的采样。


将640*480的Organized点云降采样的代码如下:(降成320*240)

PointCloud::Ptr cloud (new PointCloud);
vector indice;
for(int i=0;isize();i++)
{if(i/cloudRaw->width%2==0 && i%cloudRaw->width%2==0){indice.push_back(i);}}
copyPointCloud(*cloudRaw,indice,*cloud);
cloud->width=cloudRaw->width/2;cloud->height=cloudRaw->height/2;cloud->resize(cloud->width*cloud->height);
因为copy后得到的点云为无序点云,若仍要使点云有序,改变点云的width和height即可。





你可能感兴趣的:(PCL编程)