滚球法(Ball Pivoting)三维表面重建论文笔记

本文详细介绍了基于Ball Pivoting的三维表面重建算法,包括基本概念、算法实现及优化点。算法通过查找种子点,进行球旋转操作,实现数据点的连接与重建。讨论了种子点选择、数据结构设计、旋转操作中的join和glue操作,以及如何处理数据不均匀和外存扩展问题。算法复杂度与数据点数量成线性关系,适用于处理扫描数据。
摘要由CSDN通过智能技术生成

参考资料

[1] 原文
[2] 滚球法Github链接
[3] BPA PDF
[4] 文中提到的空洞填补论文(A Volumetric Method for BuildingComplex Modcls from Range Images)

相关问题

1.选择种子点(seed)时要确保三个顶点的法向相同(constitently oriented)
2.滚球法可改变半径并多次使用

相关参数

Lists: 数据点 σ i \sigma_i σi、法向量 n i n_i ni
front: 已连接边缘链表(Linked Lists of edges)的集合,初始组成为单闭合回路(single loop)

ps: front使用链表保存的原因:球沿着边缘旋转时,front将改变其拓扑结构
两种情况:
(1)遇到新数据:使用拓扑运算符
j o i n join join

(2)遇到以前使用过的数据点,使用拓扑运算符 g l u e glue glue
以上两个拓扑运算符能保证front在任意时刻都是链表结构


原理介绍

1.基本概念

1.1 顶点表示

每条边 e i j e_{ij} eij由两个端点 ( σ i , σ j ) (\sigma_i,\sigma_j) (σi,σj)表示,相对顶点(opposite vertex) σ o \sigma_o σo,连接此三个顶点的球的中心为 c i j o c_{ijo} cijo,半径为 ρ \rho ρ

球旋转操作:

添加三角形的连接操作(去除边 e i j e_{ij} eij并添加两条新边 e i k e_{ik} eik e k j e_{kj} ekj):


1.2 边表示

沿着front的同一个闭合回路连接前一条边(previous dege)和后一条边(next edge)
每条边有三种状态:

1. a c t i v e active active
用于旋转

2. b o u n d a r y boundary boundary不能旋转的边

3. f r o z e n frozen frozen

将所有信息与edge一起保存,可以使得旋转球的过程变得简单

1.3 数据结构

1.3.1 元素

b a l l _ p i v o t 和 f i n d _ s e e d _

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值