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

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;
}
[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"
}
]
}