Даунсэмплинг облака точек и нормальная оценка с помощью PCL

Я работаю над облаком точек понижающей дискретизации и нормальной оценкой. Нормальная оценка у меня работает нормально, и даунсэмплинг тоже; однако, когда они объединены вместе, они не работают, и я получаю следующее: (дамп ядра). ниже мой код. Любая помощь приветствуется?

pcl::PCLPointCloud2 pcl_pc2;
pcl::PointCloud<pcl::PointXYZ>::Ptr temp_cloud2(new    pcl::PointCloud<pcl::PointXYZ>);

pcl_conversions::toPCL(*input,pcl_pc2);

pcl::PointCloud<pcl::PointXYZ>::Ptr temp_cloud(new pcl::PointCloud<pcl::PointXYZ>);
pcl::fromPCLPointCloud2(pcl_pc2,*temp_cloud);

// Perform the actual filtering
pcl::VoxelGrid<pcl::PointXYZ> sor;
sor.setInputCloud (temp_cloud);
sor.setLeafSize (0.1f, 0.1f, 0.1f);
sor.filter (*temp_cloud2); 

//do stuff with temp_cloud here
pcl::NormalEstimation<pcl::PointXYZ, pcl::Normal> ne;
ne.setInputCloud (temp_cloud2);

// Create an empty kdtree representation, and pass it to the normal estimation object.
// Its content will be filled inside the object, based on the given input dataset (as no other search surface is given).
pcl::search::KdTree<pcl::PointXYZ>::Ptr tree (new pcl::search::KdTree<pcl::PointXYZ> ());
ne.setSearchMethod (tree);

// Output datasets
pcl::PointCloud<pcl::Normal>::Ptr cloud_normals (new pcl::PointCloud<pcl::Normal>);

// Use all neighbors in a sphere of radius 3cm
ne.setRadiusSearch (0.03);

// Compute the features
ne.compute (*cloud_normals);

person Ali    schedule 03.09.2019    source источник


Ответы (1)


Для меня это решено; Я изменил радиус поиска с 0.03 на 0.3, потому что в 0.03 не было данных облака точек из-за понижающей дискретизации.

person Ali    schedule 03.09.2019