欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

点云处理基础操作

程序员文章站 2022-06-02 21:43:16
...
  1. 定义一个新的点云
    *cloud是已知的点云
    *newcloud是新点云
pcl::PointCloud<pcl::PointXYZRGB>::Ptr newcloud(new pcl::PointCloud<pcl::PointXYZRGB>); // 创建点云(指针)

newcloud->height = cloud->height;//或者直接这个newcloud->height = 1;一般好像点云这个都是1
newcloud->width = cloud->width;//*cloud是已知的点云
newcloud->is_dense = false;

也可以直接复制点云

pcl::PointCloud<pcl::PointXYZRGB>::Ptr newcloud(new pcl::PointCloud<pcl::PointXYZRGB>); // 创建点云(指针)

pcl::copyPointCloud(*cloud, *newcloud);//把cloud复制给newcloud(然后就可以直接用newcloud了,里面就有相应点的坐标了,相当于把指针赋值了吧)
//一顿操作之后newcloud里面一些点被修改,需要保存起来,如下:
newcloud->height = 1;
newcloud->width = newcloud->points.size();
newcloud->is_dense = false;
  1. 去除NAN点
//去除NAN点
	std::vector<int> mapping;
	pcl::removeNaNFromPointCloud(*pcloud, *pcloud, mapping);
	std::cout << "原始点云去除NaN点后数量: " << pcloud->points.size() << std::endl;