PCL最基本的数据类型就是PointXYZ
这个代表的是一个黑白的点,这个类包含了xyz的坐标,当然也有更高级的PointXYZRGB,这个里面不仅有坐标,还有点的RGB颜色值。
如果我们要定义一连串点云一般用的是PointCloud,这个类里面有个point变量,这个变量实际上用的是STL里面的vector。
PCL的example里通常都是这样定义的:
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ> );
如果要访问某一个点,则需要:
cloud->points[i].x
可以看到,points是个vector变量,所以points[i]就是单个的点,这里访问了他的x的值,同理可以访问y和z,如果是PointXYZRGB则还有rgb,如果想往cloud这个变量里面添加一个点的信息,则只需要定一个PointXYZ(或PointXYZRGB)的变量,然后通过vector的push_back,加入到points这个变量里面。
pcl::PointXYZ point; point.x = 2.0f - y; point.y = y; point.z = z; cloud.points.push_back(point);
如果有两个坐标相同的点,则颜色信息以最后的一个为准。 --------------------- 本文来自 蒙特卡洛家的树 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/u011021773/article/details/78078709?utm_source=copy