当前位置: 首页 > 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.xdnf.cn/news/604063.html

相关文章:

  • 「二叉搜索树·手撕暴走篇」:用C++《一路向北》狂写指针のの死亡轮盘!
  • 初识main函数
  • C/C++的OpenCV 进行图像梯度提取
  • [原创](计算机数学)(The Probability Lifesaver)(P14): 推导计算 In(1-u) 约等于 -u
  • 游戏引擎学习第308天:调试循环检测
  • 服务器修改/home的挂载路径
  • 课外活动:大语言模型Claude的技术解析 与 自动化测试框架领域应用实践
  • 【心海资源】【原创开发】TG,飞机,电报,协议号及直登号转API
  • C++滑动门问题(附两种方法)
  • SmartSoftHelp 之 SQL Server 数据库安全备份与安全还原详解---深度优化版:SmartSoftHelp DeepCore XSuite
  • 运维打铁:生产服务器用户权限管理方案全解析
  • leetcode 3068. 最大节点价值之和
  • 阿里开源 CosyVoice2:打造 TTS 文本转语音实战应用
  • 音视频之视频压缩及数字视频基础概念
  • 看海回测系统回测过程
  • CSS 列表样式完全解析:从 ul/ol 基础到自定义样式
  • Kotlin 中该如何安全地处理可空类型?
  • 计算机图形学:(三)MVP变换扩展
  • WPF骨架屏控件(Skeleton)
  • 阿里巴巴Qwen3技术报告深度解析:开源大模型的最新突破
  • ECharts图表工厂,完整代码+思路逻辑
  • PHP实现签名类
  • Pandas:数据分析中的缺失值检测、加载、设置、可视化与处理
  • 苍穹外卖07 缓存菜品缓存套餐 添加购物车
  • 基于大模型预测发育性髋脱位的多维度研究与应用报告
  • c++面向对象基础学习笔记
  • 信号线上加小pf电容、串接电阻以备滤波、阻抗匹配
  • 基于非线性规划的电动汽车充电站最优布局
  • 华为云Astro前端页面数据模型选型及绑定IoTDA物联网数据实施指南
  • 数据结构第1章 (竟成)