You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对LAS格式点云进行规则间隔2D网格插值?

点云转规则间隔2D网格插值方案疑问

我有一个LAS格式的点云文件,点云整体呈三角形分布,且数据点分布不均匀;放大后可看到点云的细节特征。作为练习,我希望通过规则间隔的2D网格对该数据进行插值,暂时无需考虑LAS文件的三角形形状,本质是将点云转换为具有规则间隔像素的2D图像。

已尝试方案

1. PCL实现(未达预期)

最初尝试用Point Cloud Library(PCL)实现,代码如下:

#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl/kdtree/kdtree_flann.h>
#include <pcl/surface/grid_projection.h>
#include <pcl/io/pcd_io.h>
#include <pcl/filters/approximate_voxel_grid.h>
#include <pcl/filters/voxel_grid.h>
#include <pcl/io/ply_io.h>
using namespace pcl::io;

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

但运行后仅完成了点云下采样,并未实现规则间隔的插值效果,结果只是下采样后的稀疏点云,不符合预期。

2. PDAL格式转换

通过PDAL完成了LAS到PCD格式的转换,配置如下:

{
    "pipeline":     [
        {
            "type": "readers.las",
            "filename": "./data/triangle.las"
        },
        {
            "type": "writers.pcd",
            "filename": "./data/triangle.pcd"
        }
    ]
}

疑问

目前怀疑当前方案方向错误,是否需要自行实现插值逻辑?

内容的提问来源于stack exchange,提问作者sav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 01:30:13