Interpolation der Punktwolke in regelmäßigen AbständenC++

Programme in C++. Entwicklerforum
Guest
 Interpolation der Punktwolke in regelmäßigen Abständen

Post by Guest »

Ich habe eine Las-Datei:
Image

Die Datenpunkte in dieser LAS-Datei sind nicht gleichmäßig verteilt. Es handelt sich um eine Punktwolke, wie Sie beim Heranzoomen sehen können:
Image

Als Übung möchte ich versuchen, diese Daten mithilfe eines regelmäßig verteilten 2D-Gitters zu interpolieren. Ich mache mir im Moment keine allzu großen Sorgen, dass die Las-Datei eine Dreiecksform hat.
In gewisser Weise versuche ich, diese Punktwolke in ein 2D-Bild mit regelmäßig verteilten Pixeln umzuwandeln.
Mein erster Versuch, das Problem zu lösen, bestand darin, die Punktwolkenbibliothek zu verwenden.

Code: Select all

#include 
#include 
#include 
#include 
#include 

#include 
#include 

#include 

using namespace pcl::io;

int main(int argc, char** argv)
{
pcl::PointCloud::Ptr cloud_filtered (new pcl::PointCloud);
pcl::PointCloud::Ptr cloud(new pcl::PointCloud);
if (pcl::io::loadPCDFile("/app/data/triangle.pcd", *cloud) == -1)
{
PCL_ERROR("Couldn't read file\n");
return (-1);
}

pcl::VoxelGrid sor;
sor.setInputCloud (cloud);
sor.setLeafSize (1, 1, 1);

sor.filter (*cloud_filtered);

pcl::io::savePCDFileASCII("/app/output/interpolated_cloud.pcd", *cloud_filtered);

return 0;
}

Dies scheint die Interpolation nicht in regelmäßigen Abständen durchgeführt zu haben
[img]https:// i.sstatic.net/EAxhFSZP.png[/img]

Es scheint, dass das VoxelGrid ein Downsampling durchgeführt hat, aber nicht in regelmäßigen Abständen.
Ich musste auch PDAL verwenden, um meine Las zu konvertieren Datei an a PCD-Datei

Code: Select all

{
"pipeline":
[
{
"type": "readers.las",
"filename": "./data/triangle.las"
},
{
"type": "writers.pcd",
"filename": "./data/triangle.pcd"
}
]
}
Vielleicht gehe ich hier in die völlig falsche Richtung. Vielleicht muss ich meine eigene Lösung implementieren.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post