PCD 파일 ν˜•μ‹μœΌλ‘œ μ €μž₯ν•΄λ³΄μž

전체 μ½”λ“œ

#include <iostream>

// 헀더 파일 μ„ μ–Έ
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>

using namespace std;

int main(int argc, char** argv)
{
  // PCL object μ„ μ–Έ
  pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>());

  // Unorganized form으둜 데이터 μ±„μš°κΈ°
  cloud->width = 30;
  cloud->height = 1;
  cloud->points.resize(cloud->width * cloud->height);

  // 포인트 ν΄λΌμš°λ“œ 데이터에 λ‚œμˆ˜ μ‚½μž…
  for(auto& point: *cloud)
  {
    point.x = 1024 * rand() / (RAND_MAX + 1.0f);
    point.y = 1024 * rand() / (RAND_MAX + 1.0f);
    point.z = 1024 * rand() / (RAND_MAX + 1.0f);
  }

  // 2가지 방법 쑴재
  // 1. savePCDFile ν•¨μˆ˜ 이용
  // Third argument -> False for ASCII
  if (pcl::io::savePCDFile("../test.pcd", *cloud, false) == -1)
  {
    PCL_ERROR("Failed to save!");
    return -1;
  }

  // 2. PCDWriter 이용
  pcl::PCDWriter writer;
  writer.write("../test.pcd", *cloud, false);

  return 0;
}

Reference

Leave a comment