导入二进制PLY文件并使用Point Cloud Library进行分段

时间:2014-02-19 21:24:01

标签: image-segmentation point-cloud-library ply-file-format

我使用Motion中的Visual Structure生成二进制点云(PLY),我在Meshlab中查看过。点云只是没有面的点。我想将这些文件加载​​到PCL并进行分段,但是我在解决文件读取方面遇到了问题。代码(使用loadPLYFile)运行,但无法生成索引。

  pcl::search::Search <pcl::PointXYZRGB>::Ptr tree = boost::shared_ptr<pcl::search::Search<pcl::PointXYZRGB> > (new pcl::search::KdTree<pcl::PointXYZRGB>);

  pcl::PointCloud <pcl::PointXYZRGB>::Ptr cloud (new pcl::PointCloud <pcl::PointXYZRGB>);
  if ( pcl::io::loadPLYFile <pcl::PointXYZRGB> ("file.ply", *cloud) == -1 )
    {
      std::cout << "Cloud reading failed." << std::endl;
      return (-1);
    }

  pcl::IndicesPtr indices (new std::vector <int>);
  pcl::PassThrough<pcl::PointXYZRGB> pass;
  pass.setInputCloud (cloud);
  pass.setFilterFieldName ("z");
  pass.setFilterLimits (0.0, 5.0);
  pass.filter (*indices);

  pcl::RegionGrowingRGB<pcl::PointXYZRGB> reg;
  reg.setInputCloud (cloud);
  reg.setIndices (indices);
  reg.setSearchMethod (tree);
  reg.setDistanceThreshold (10);
  reg.setPointColorThreshold (6);
  reg.setRegionColorThreshold (5);
  reg.setMinClusterSize (300);

此代码在运行时出现以下错误:

  

[pcl :: RegionGrowingRGB :: prepareForSegmentation]空给定索引!   [pcl :: KdTreeFLANN :: setInputCloud]无法创建空的KDTree   输入云!

0 个答案:

没有答案