PCL: SACSegmentationFromNormals не работает

У меня проблема со структурой PCL SACSegmentationFromNormals. Я хочу сделать сегментацию цилиндра с C ++. Подобная сегментация плоскости работала просто отлично, но здесь я получаю сообщение об ошибке:

«PCL :: SACSegmentationFromNormals :: initSACModell Входные данные не заданы! Невозможно продолжить.»

Я использую PointXYZRGBA и pcl :: Normals, хотя. У кого-нибудь есть идея? Вот мой код до сих пор:

 `pcl::ModelCoefficients::Ptr ProMaTFC::fitting() {

...

pcl::ModelCoefficients::Ptr coefficients(new pcl::ModelCoefficients);
pcl::SACSegmentationFromNormals<pcl::PointXYZRGBA, pcl::Normal> seg;
seg.setOptimizeCoefficients(true);
seg.setModelType(pcl::SACMODEL_CYLINDER);
seg.setMethodType(pcl::SAC_RANSAC);
seg.setDistanceThreshold(0.1);
seg.setInputCloud(cloud->makeShared());
seg.setRadiusLimits(0, 5);
pcl::PointIndices inlierIndices;
segmentation.segment(inlierIndices, *coefficients_cylinder);

...
return coefficients_cylinder;
}`

Я использую следующие библиотеки (если вам интересно):

`#include <pcl/ModelCoefficients.h>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/filters/extract_indices.h>
#include <pcl/filters/passthrough.h>
#include <pcl/features/normal_3d.h>
#include <pcl/sample_consensus/method_types.h>
#include <pcl/sample_consensus/model_types.h>
#include <pcl/segmentation/sac_segmentation.h> `

0

Решение

Вы должны вызвать функцию setInputNormals() если вы хотите использовать обычную информацию для оценки параметров.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]