C++ PCL如何创建点云阵列/矢量?

C++ PCL如何创建点云阵列/矢量?,c++,eigen,point-cloud-library,C++,Eigen,Point Cloud Library,我在硬盘上存储了85个点云。我想打开所有云并将它们保存在向量/数组中。 我该怎么做 我的测试没有成功: define _CRT_SECURE_NO_WARNINGS #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/registration/icp.h> #include <pcl/visualization/pcl_visu

我在硬盘上存储了85个点云。我想打开所有云并将它们保存在向量/数组中。
我该怎么做

我的测试没有成功:

    define _CRT_SECURE_NO_WARNINGS
    #include <pcl/io/pcd_io.h>
    #include <pcl/point_types.h>
    #include <pcl/registration/icp.h>
    #include <pcl/visualization/pcl_visualizer.h>
    #include <pcl/common/transforms.h>
    #include <pcl/filters/voxel_grid.h>
    #include <pcl/filters/radius_outlier_removal.h>

    #include <Eigen/Geometry>


    #include <iostream>
    #include <string>

    using namespace pcl;
    using namespace std;

    int main(int argc, char** argv)
    {
    //Create Point Clouds
    PointCloud<PointXYZ>::Ptr sourceCloud(new PointCloud<PointXYZ>);

    vector < PointCloud<PointXYZ>::Ptr, Eigen::aligned_allocator <PointCloud <PointXYZ>::Ptr > > sourceClouds;

    //save PointClouds to array
    for (int i = 1; i < (argc - 1); i++)
    {
        if (io::loadPCDFile<PointXYZ>(argv[i], *sourceCloud) != 0)
        {
            return -1;
        }
        cout << "Loaded file " << argv[i] << " (" << sourceCloud->size() << " points)" << endl;
        sourceClouds.push_back(sourceCloud);
        cout << "Point Cloud " << i-1 << "has got " << sourceClouds[i-1]->size() << " Points" << endl;
        sourceCloud->clear();
    }

    for (int i = 0; i < sourceClouds.size() - 1; i++)
    {
        cout << "Point Cloud " << i << "has got " << sourceClouds[i]->size() << " Points" << endl;
    }
    }
define\u CRT\u SECURE\u NO\u警告
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
使用名称空间pcl;
使用名称空间std;
int main(int argc,字符**argv)
{
//创建点云
点云::Ptr sourceCloud(新点云);
向量sourceClouds;
//将点云保存到阵列
对于(int i=1;i<(argc-1);i++)
{
如果(io::loadPCDFile(argv[i],*sourceCloud)!=0)
{
返回-1;
}
库特
此行仅复制PointCloud::Ptr,不复制点云数据

试试这个:

  int main(int argc, char** argv)
    {
    //Create Point Clouds
    //PointCloud<PointXYZ>::Ptr sourceCloud(new PointCloud<PointXYZ>);

    vector < PointCloud<PointXYZ>::Ptr, Eigen::aligned_allocator <PointCloud <PointXYZ>::Ptr > > sourceClouds;

    //save PointClouds to array
    for (int i = 1; i < (argc - 1); i++)
    {
        PointCloud<PointXYZ>::Ptr sourceCloud(new PointCloud<PointXYZ>);
        if (io::loadPCDFile<PointXYZ>(argv[i], *sourceCloud) != 0)
        {
            return -1;
        }
        cout << "Loaded file " << argv[i] << " (" << sourceCloud->size() << " points)" << endl;
        sourceClouds.push_back(sourceCloud);
        cout << "Point Cloud " << i-1 << "has got " << sourceClouds[i-1]->size() << " Points" << endl;
       // sourceCloud->clear();
    }

    for (int i = 0; i < sourceClouds.size() - 1; i++)
    {
        cout << "Point Cloud " << i << "has got " << sourceClouds[i]->size() << " Points" << endl;
    }
    }
int main(int argc,char**argv)
{
//创建点云
//点云::Ptr sourceCloud(新点云);
向量sourceClouds;
//将点云保存到阵列
对于(int i=1;i<(argc-1);i++)
{
点云::Ptr sourceCloud(新点云);
如果(io::loadPCDFile(argv[i],*sourceCloud)!=0)
{
返回-1;
}
库特
  int main(int argc, char** argv)
    {
    //Create Point Clouds
    //PointCloud<PointXYZ>::Ptr sourceCloud(new PointCloud<PointXYZ>);

    vector < PointCloud<PointXYZ>::Ptr, Eigen::aligned_allocator <PointCloud <PointXYZ>::Ptr > > sourceClouds;

    //save PointClouds to array
    for (int i = 1; i < (argc - 1); i++)
    {
        PointCloud<PointXYZ>::Ptr sourceCloud(new PointCloud<PointXYZ>);
        if (io::loadPCDFile<PointXYZ>(argv[i], *sourceCloud) != 0)
        {
            return -1;
        }
        cout << "Loaded file " << argv[i] << " (" << sourceCloud->size() << " points)" << endl;
        sourceClouds.push_back(sourceCloud);
        cout << "Point Cloud " << i-1 << "has got " << sourceClouds[i-1]->size() << " Points" << endl;
       // sourceCloud->clear();
    }

    for (int i = 0; i < sourceClouds.size() - 1; i++)
    {
        cout << "Point Cloud " << i << "has got " << sourceClouds[i]->size() << " Points" << endl;
    }
    }