Как установить «pcl :: PointIndices» с помощью файла PCD (существующие наборы облаков точек) - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь реализовать вычитание фона в pointcloud.(например, background.pcd = input.pcd - object.pcd)

Я нашел следующий код

  pcl::PointCloud<pcl::PointXYZ>::Ptr p_obstacles(new pcl::PointCloud<pcl::PointXYZ>);
  pcl::PointIndices::Ptr inliers(new pcl::PointIndices());
  pcl::ExtractIndices<pcl::PointXYZ> extract;

// Insert something. 

  extract.setInputCloud(p_obstacles);
  extract.setIndices(inliers);
  extract.setNegative(true);
  extract.filter(*p_obstacles);

Удаление точек из pcl :: PointCloud

В моем понимании inliers вычитается из input.pcd (inliers = object.pcd ??)

Я понятия не имею, как установить значение Inliers с помощьюранее существовавшие значения x, y, z (pcd)

Спасибо!

1 Ответ

0 голосов
/ 21 сентября 2018

В классе PCLBase есть метод getIndices (): http://docs.pointclouds.org/1.8.1/classpcl_1_1_p_c_l_base.html#a058753dd4de73d3d0062fe2e452fba3c

Вот как его использовать:

pcl::PCLBase<pcl::PointXYZ> base; // Instantiate the PCLBase class
base.setInputCloud(object_cloud); // Set input cloud before grabbing the indices
auto object_indices = base.getIndices();
extract.setIndices(object_indices);

Возможно, вам потребуется включить файл заголовка

#include <pcl/pcl_base.h>

И если вы не создали облако точек из своего файла pcd, вы можете следовать этому руководству: http://pointclouds.org/documentation/tutorials/reading_pcd.php

...