Ich habe eine beschriftete Punktwolkendaten (Wolke), deren Punkte "x", "y", "z" und "label" Information enthalten, während die Beschriftung 1,2 oder sein kann 3.Generieren einer Punktwolke aus einer anderen beschrifteten Punktwolke
pcl::PointCloud<pcl::PointXYZL>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZL>);
Jetzt möchte ich diese Punktwolke auf 3 separate Punktwolke entsprechend ihrer Bezeichnung teilen. zum Beispiel möchte ich eine Punktwolke generieren, die nur die x, y, z Informationen der Punkte enthält, deren Label 1 (cloud1)
ist. Ich habe diese:
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++;
}
}
Aber ich erhielt "Segmentation fault (core dumped)"
Fehler. Ich habe mich gefragt, wo ist das Problem?