当前位置: 首页 > 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上正常运行。

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

整体图局部放大图

相关文章:

  • 日志分析-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的继承关系和生命周期
  • 小白学习顺序表 之 通讯录实现
  • 云服务器里面做网站播放器/外国搜索引擎登录入口
  • 淘宝页面设计模板/哈尔滨优化推广公司
  • 东莞建站模板后台/百度电视剧风云榜
  • 全国工商网/谷歌seo推广公司
  • 做外贸做的很好的网站/百度推广代理商名单
  • 镇江做网站的/长沙网站seo哪家公司好