尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

SLAM 将PCL点云转换成网格地图

SLAM 将PCL点云转换成网格地图
📅 发布时间:2026/7/9 10:46:11

PCL 3D点云没有表面信息,转换成网格地图之后可以构建出法线、纹理等信息。

先看一下输入的3D点云:

运行程序后会显示生成的网格地图,如下图所示:

看一下放大后的局部对比:

输入点云放大后每个点还是孤立的小方块。

输出的网格地图已经是一个平面了。

输入:map.pcd 3D点云地图

输出:没有保存输出结果

运行:编译后在cmd里才能运行,需要1个参数:输入的3D点云地图

示例:program.exe map.pcd

视频演示:https://www.bilibili.com/video/BV1RMdcBwEUC/

代码:

#include <pcl/point_cloud.h> #include <pcl/point_types.h> #include <pcl/io/pcd_io.h> #include <pcl/visualization/pcl_visualizer.h> #include <pcl/kdtree/kdtree_flann.h> #include <pcl/surface/surfel_smoothing.h> #include <pcl/surface/mls.h> #include <pcl/surface/gp3.h> #include <pcl/surface/impl/mls.hpp> // typedefs typedef pcl::PointXYZRGB PointT; typedef pcl::PointCloud<PointT> PointCloud; typedef pcl::PointCloud<PointT>::Ptr PointCloudPtr; typedef pcl::PointXYZRGBNormal SurfelT; typedef pcl::PointCloud<SurfelT> SurfelCloud; typedef pcl::PointCloud<SurfelT>::Ptr SurfelCloudPtr; SurfelCloudPtr reconstructSurface( const PointCloudPtr &input, float radius, int polynomial_order) { pcl::MovingLeastSquares<PointT, SurfelT> mls; pcl::search::KdTree<PointT>::Ptr tree(new pcl::search::KdTree<PointT>); mls.setSearchMethod(tree); mls.setSearchRadius(radius); mls.setComputeNormals(true); mls.setSqrGaussParam(radius * radius); mls.setPolynomialFit(polynomial_order > 1); mls.setPolynomialOrder(polynomial_order); mls.setInputCloud(input); SurfelCloudPtr output(new SurfelCloud); mls.process(*output); return (output); } pcl::PolygonMeshPtr triangulateMesh(const SurfelCloudPtr &surfels) { // Create search tree* pcl::search::KdTree<SurfelT>::Ptr tree(new pcl::search::KdTree<SurfelT>); tree->setInputCloud(surfels); // Initialize objects pcl::GreedyProjectionTriangulation<SurfelT> gp3; pcl::PolygonMeshPtr triangles(new pcl::PolygonMesh); // Set the maximum distance between connected points (maximum edge length) gp3.setSearchRadius(0.05); // Set typical values for the parameters gp3.setMu(2.5); gp3.setMaximumNearestNeighbors(100); gp3.setMaximumSurfaceAngle(M_PI / 4); // 45 degrees gp3.setMinimumAngle(M_PI / 18); // 10 degrees gp3.setMaximumAngle(2 * M_PI / 3); // 120 degrees gp3.setNormalConsistency(true); // Get result gp3.setInputCloud(surfels); gp3.setSearchMethod(tree); gp3.reconstruct(*triangles); return triangles; } int main(int argc, char **argv) { // Load the points PointCloudPtr cloud(new PointCloud); if (argc == 0 || pcl::io::loadPCDFile(argv[1], *cloud)) { cout << "failed to load point cloud!"; return 1; } cout << "point cloud loaded, points: " << cloud->points.size() << endl; // Compute surface elements cout << "computing normals ... " << endl; double mls_radius = 0.05, polynomial_order = 2; auto surfels = reconstructSurface(cloud, mls_radius, polynomial_order); // Compute a greedy surface triangulation cout << "computing mesh ... " << endl; pcl::PolygonMeshPtr mesh = triangulateMesh(surfels); cout << "display mesh ... " << endl; pcl::visualization::PCLVisualizer vis; vis.addPolylineFromPolygonMesh(*mesh, "mesh frame"); vis.addPolygonMesh(*mesh, "mesh"); vis.resetCamera(); vis.spin(); }

参考:高翔《视觉SLAM十四讲》P333页附近

相关新闻

  • 虚拟文化体验翻译:虚拟导览系统的多语言交互与信息架构设计
  • 洛雪音乐桌面版:打破平台壁垒的终极音乐聚合解决方案
  • AI智能体工作流实战:从代码生成到项目级工程执行

最新新闻

  • Awoo Installer:Switch游戏安装终极指南 - 简单三步搞定NSP/XCI格式
  • 网页截图总是不完整?Chrome全屏截图插件一键搞定超长页面
  • 期货反向跟单:不用怕盘手成长,核心前提是不设止盈止损
  • 解决Git图标不显示的问题
  • Redisson 分布式限流 + 分布式幂等完整实现
  • 微信小程序源码提取神器:用unveilr轻松反编译小程序包

日新闻

  • SQL 查询语句的标准逻辑执行顺序(即语义处理顺序),它与实际书写顺序不同,但决定了数据库如何解析和执行查询
  • ORB-SLAM2 重定位模块深度解析:从 BoW 候选帧到 PnP 优化的 6 步流程
  • 罗技鼠标宏压枪脚本终极指南:从原理到实战的完整解析

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号