ch04——4.3.4连接两个点云中的字段或数据形成新点云
进行连接前要保证两个数据中的字段类型和维度相同,数目一样。如:点云a是n个点的xyz点,点云b是n个点的rgb点,则形成c点云是n个点xyzrgb类型。
1.代码
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <iostream>
using namespace std;
using namespace pcl;
int main() {
//三个输入:cloud_a, cloud_b,n_cloud_b
//两个输出:cloud_c,p_n_cloud_c
PointCloud<pcl::PointXYZ>cloud_a, cloud_b, cloud_c;
PointCloud<pcl::Normal>n_cloud_b;//存储进行连接时normal点云
PointCloud<pcl::PointNormal>p_n_cloud_c;
//创建点云
cloud_a.width = 3;//点云个数为3
//都设置为无序点云
cloud_a.height = cloud_b.height = n_cloud_b.height = 1;
cloud_a.points.resize(cloud_a.width*cloud_a.height)
cloud_b.width = 2;//点云个数为2
cloud_b.points.resize(cloud_b.width*cloud_b.height);
n_cloud_b.width = 3;//如果是链接xyz与normal则生成3个法线
n_cloud_b.points.resize(n_cloud_b.width*n_cloud_b.height);
//以下循环生成无序点云,填充定义上面两种类型点云对象
for (size_t i = 0; i < cloud_a.points.size(); i++)
{
//cloud_a始终产生3个点</