Ich möchte einen einzigen RGB-Wert auf alle Punkte in einer Punktwolke-Datensatz vom Typ zuzuordnen:Point Cloud-Bibliothek - Wie wird einer ganzen Punktewolke ein einzelner RGB-Wert zugewiesen?
pcl::PointCloud<pcl::PointXYZRGB>
Ich vermute, Sie durch die Punkte wiederholen könnte und jeden Wert ändern? Mit so etwas wie folgt aus:
uint32_t rgb = (static_cast<uint32_t>(r) << 16 |
static_cast<uint32_t>(g) << 8 | static_cast<uint32_t>(b));
point.rgb = *reinterpret_cast<float*>(&rgb);
Allerdings würde man bedenkt Ich mag alle Punkte den gleichen Wert geben, gibt es einen besseren Ansatz?
Der RGB-Wert muss jedem Punkt oder mindestens der Punktsammlung zugeordnet werden, damit mehr als eine Punktwolke in einem Ausgang kombiniert werden kann; jedes mit ihrer eigenen eindeutigen Farbe.
Da es mehrere Punktwolken Ich bin nicht in der Lage, die Farbe durch PCLVisualizer setzen mit:
pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ>
Eine Idee, die ich hatte, war nur eine hohe Assoziation mit der Punktwolke zu machen:
std::tie(rgb, pointcloud) = std::make_tuple(
uint32_t, pcl::PointCloud<pcl::PointXYZ>);
Dann könnte ich vielleicht PointCloudColorHandlerCustom
mehrmals verwenden, um die verschiedenen farbigen Punktwolken auf der gleichen PCLVisualizer-Instanz anzuzeigen? Ich bin mir nicht sicher, ob das möglich ist.
Jede Hilfe wird sehr geschätzt!
Also, ich bin wahrscheinlich besser mit Speichern eines RGB-Wert neben der Punktwolke kleben statt Iterieren? Später kann ich dann die Funktionalität in PCLVisualizer verwenden. Wie du gesagt hast, es scheint die Mühe nicht wert zu sein. – macourtney7
Ihr Ansatz ist eine Möglichkeit. Alternativ können Sie eine riesige Punktwolke verwenden und etwas wie pcl :: PointXYZL verwenden, wobei L für Label oder pcl :: PointXYZI with Intensity steht. Dann können Sie PointCloudColorHandlerLabelField oder PointCloudColorHandlerGenericField verwenden. Aber dann wählen Sie die Farbwerte in der Visualisierung nicht wirklich aus. –
Aber selbst in diesem Fall, wenn Sie den Code der PCL schauen, verwenden sie Loops sehr. Also kommst du nicht wirklich davon weg. –