#include <iostream>
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl/common/io.h>
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl/common/io.h>
int main(int argc, char** argv)
{
//定义一个存储点云的PointCloud类的实例,使用PointXYZ结构实例化
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
//设置点云的大小
cloud->width = 5;
cloud->height = 1;
cloud->points.resize(cloud->width * cloud->height);
//随机设置点云里点的坐标
for (size_t i = 0; i < cloud->points.size(); ++i)
{
cloud->points[i].x = 1024 * rand() / (RAND_MAX + 1.0f);
cloud->points[i].y = 1024 * rand() / (RAND_MAX + 1.0f);
cloud->points[i].z = 1024 * rand() / (RAND_MAX + 1.0f);
}
std::vector<int> indexs = { 0, 2, 3 };
pcl::PointCloud<pcl::PointXYZ>::Ptr cloudOut(new pcl::PointCloud<pcl::PointXYZ>);
{
//定义一个存储点云的PointCloud类的实例,使用PointXYZ结构实例化
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
//设置点云的大小
cloud->width = 5;
cloud->height = 1;
cloud->points.resize(cloud->width * cloud->height);
//随机设置点云里点的坐标
for (size_t i = 0; i < cloud->points.size(); ++i)
{
cloud->points[i].x = 1024 * rand() / (RAND_MAX + 1.0f);
cloud->points[i].y = 1024 * rand() / (RAND_MAX + 1.0f);
cloud->points[i].z = 1024 * rand() / (RAND_MAX + 1.0f);
}
std::vector<int> indexs = { 0, 2, 3 };
pcl::PointCloud<pcl::PointXYZ>::Ptr cloudOut(new pcl::PointCloud<pcl::PointXYZ>);
//按索引拷贝点到cloudOut中
pcl::copyPointCloud(*cloud, indexs, *cloudOut);
//输出cloudout 的点
for (size_t i = 0; i < cloudOut->points.size(); ++i)
{
std::cout << "第" << i << "个点的x坐标:" << cloudOut->points[i].x << std::endl;
std::cout << "第" << i << "个点的y坐标:" << cloudOut->points[i].y << std::endl;
std::cout << "第" << i << "个点的z坐标:" << cloudOut->points[i].z << std::endl;
}
system("pause");
return 0;
}
pcl::copyPointCloud(*cloud, indexs, *cloudOut);
//输出cloudout 的点
for (size_t i = 0; i < cloudOut->points.size(); ++i)
{
std::cout << "第" << i << "个点的x坐标:" << cloudOut->points[i].x << std::endl;
std::cout << "第" << i << "个点的y坐标:" << cloudOut->points[i].y << std::endl;
std::cout << "第" << i << "个点的z坐标:" << cloudOut->points[i].z << std::endl;
}
system("pause");
return 0;
}