阅读背景:

pcl 点云拼接基础(1)

来源:互联网 
一、点云暴力拼接 

 

 

//Findnowd("C:\Users\Albert\Desktop\A1.pcd"); pcl::PointCloud<pcl::PointXYZRGB>cloud_a, cloud_b, cloud_c; cloud_a.width = 500; cloud_a.height = cloud_b.height = 20; cloud_a.points.resize(cloud_a.width * cloud_a.height); for (size_t i = 0; i < cloud_a.size(); i++) { cloud_a.points[i].x = 1024 * rand() / (RAND_MAX + 1.0f); cloud_a.points[i].y = 1024 * rand() / (RAND_MAX + 1.0f); cloud_a.points[i].z = 1024 * rand() / (RAND_MAX + 1.0f); cloud_a.points[i].r = 200; // cerr << " " << cloud_a.points[i].x << " " << cloud_a.points[i].y << " " << cloud_a.points[i].z << endl; } cout << "cloud_a 的大小 :" << cloud_a.size() << endl; pcl::io::savePCDFileBinaryCompressed("./PerpendicularityVaro/B/cloud_a.pcd", cloud_a); cerr << "Cloud B:" << endl; cloud_b.width = 300; cloud_b.points.resize(cloud_b.width * cloud_b.height); for (size_t i = 0; i < cloud_b.size(); i++) { cloud_b.points[i].x = 1024 * rand() / (RAND_MAX + 1.0f); cloud_b.points[i].y = 1024 * rand() / (RAND_MAX + 1.0f); cloud_b.points[i].z = 1024 * rand() / (RAND_MAX + 1.0f); cloud_b.points[i].r = 0; cloud_b.points[i].b = 250; // cerr << " " << cloud_b.points[i].x << " " << cloud_b.points[i].y << " " << cloud_b.points[i].z << endl; } cout << "cloud_b 的大小 :"<< cloud_b.size()<< endl; pcl::io::savePCDFileBinaryCompressed("./PerpendicularityVaro/B/cloud_b.pcd", cloud_b); pcl::PointCloud<pcl::PointNormal> cloud_normal_c; cerr << "拼接之后:Cloud C:" << endl; cloud_c = cloud_a; cloud_c += cloud_b; // 简单粗暴。 // pcl::concatenateFields(cloud_a, cloud_b, cloud_normal_c); for (size_t i = 0; i < cloud_c.size(); i++) { cloud_c.points[i].r = 255; } cout << "cloud_c 的大小 :" << cloud_c.size() << endl; pcl::io::savePCDFileBinaryCompressed("./PerpendicularityVaro/B/cloud_c.pcd", cloud_c); 二、将点和Normal 组合到一起 //Findnowd("C:\Users\Albert\Deskt



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: