当前位置: 首页 > news >正文

Alpha shapes算法边缘点进行排序(C++)

1、背景介绍

        Alpha Shapes算法能够提取任意点云的边缘点,因此被广泛使用。直接将提取的边缘点进行相连,是混乱相交的多边形,无法真实刻画点云形状,如下图左图所示。这种无序结构,极大影响后续数据处理。而右图中有序结构点云,直接连接边缘点,可以精确刻画点云形状,这样有利于处于相关应用。

无序结构(混乱多边形)有序结构(理想多边形)

2、边缘点排序介绍

       下面介绍一种基于深度优先遍历的边缘点排序方法。Alpha Shapes算法提取轮廓点的原理可以参考博客alpha shapes提取边界原理及详细步骤-CSDN博客,其识别的边缘点往往是点对,形成边缘边。因此,依据这一关系,可以对点云进行排序。本文根据前文介绍的深度优先遍历(DFS)算法,具体参考博客基于深度优先搜索(DFS)的闭合环检索-CSDN博客。搜索得到闭合多边形,从而对点云进行排序。

3、代码测试

      基于PCL、C++编写的对ALpha Shapes算法提取的边缘点进行排序,未调用三方API,源代码下载链接:https://download.csdn.net/download/qq_32867925/90893141

      该源代码包括一个cpp运行文件,以及6个测试数据。cpp文件直接在配置好的vs平台上运行即可。该源代码在vs2013+PCL1.8、vs2019+PCL 1.11上正常运行。

      直接将排序的边缘点相连,生成多边形。可以发现多边形可以精确刻画点云形状,孔洞内边缘点也进行了排序,证明程序的准确性。

整体图局部放大图

http://www.dtcms.com/a/209895.html

相关文章:

  • 日志分析-IIS日志分析
  • PTA刷题笔记2
  • 进考场!软考考试现场答题的注意事项
  • 列表集合字典推导式
  • 互联网大厂Java求职面试:云原生架构与AI应用集成解决方案
  • SkyWalking高频采集泄漏线程导致CPU满载排查思路
  • springboot配置mysql druid连接池,以及连接池参数解释
  • 系统架构设计师脑图
  • 【c++】: c++11线程库
  • 重读《人件》Peopleware -(12-1)Ⅱ 办公环境 Ⅴ 大脑时间与身体时间(上)
  • python实战:Python脚本后台运行的方法
  • Redis主从+哨兵+集群分片
  • 树莓派4B搭建Hector SLAM算法, ROS1 ROS2?
  • 短视频与直播场景下的美颜SDK优化方案:滤镜与特效如何平衡性能与美感?
  • 方洪波摸着雷军,“甩掉”小米
  • FPGA 42 ,时序约束深度解析与实战应用指南( FPGA 时序约束 )
  • 独木桥 Java
  • 应用案例 | 柔性生产新范式,优傲UR20赋能葡萄酒灌装产线
  • Servlet的继承关系和生命周期
  • 小白学习顺序表 之 通讯录实现
  • 《算法导论(第4版)》阅读笔记:p115-p126
  • 【GPU并行计算】不同设备上的GPU性能分析
  • 移动安全Android——ROOT检测绕过
  • 大模型技术生态全景解析:从基础组件到AGI的演进之路
  • Python基础知识(IO编程)
  • PCB设计实践(二十六)贴片电容与插件电容的全面解析:差异、演进与应用场景
  • 霍尼韦尔HMR2300-D00-485数字模块
  • PPP 流程已经走到启动阶段并且成功进入了 “STAGE_START_PPP
  • 使用js 写一个函数 将base64 转换成file
  • STM32 SPI通信(硬件)