J'ai un nuage de points étiqueté (nuage) dont les points comprennent les informations "x", "y", "z" et "label" alors que l'étiquette peut être 1,2 ou 3.Génération d'un nuage de points à partir d'un autre nuage de points
pcl::PointCloud<pcl::PointXYZL>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZL>);
Maintenant, je veux diviser ce nuage de points en 3 points distincts selon leur étiquette. par exemple Je veux générer un nuage de points qui inclut uniquement les informations x, y, z des points dont l'étiquette est 1 (cloud1)
. Je l'ai fait:
int ll=0;
pcl::PointCloud<pcl::PointXYZL>::Ptr cloud1 (new pcl::PointCloud<pcl::PointXYZL>);
for (int ii = 0; ii < cloud->points.size(); ++ii){
if(cloud->points[ii].label==1)
{
cloud1->points[ll].x=cloud->points[ii].x;
cloud1->points[ll].y=cloud->points[ii].y;
cloud1->points[ll].z=cloud->points[ii].z;
ll++;
}
}
for (int ii = 0; ii < cloud->points.size(); ++ii){
{
cloud1->points[ll].x=cloud->points[ii].x;
cloud1->points[ll].y=cloud->points[ii].y;
cloud1->points[ll].z=cloud->points[ii].z;
ll++;
}
}
Mais j'ai reçu "Segmentation fault (core dumped)"
erreur. Je me demandais où est le problème?