PCL下三维线形点云的B样条插值开发流程example

好多有关B样条插值的博客写的只是部分内容,一上来就是基函数,没有写整个pipeline,一开始看的我是一脸懵逼,我大概梳理一下开发过程,细节不讲,注意这个博客只针对开发需求做B样条插值,是插值!

1. 开发需求:

基于PCL的数据结构对无序点云自动排序;

基于PCL进行3维线条形点云插值,要求穿过每个线条形点云的三维点;

2. B样条插值种类:

2.1 分段贝塞尔曲线:B样条和NURBS的基础;

2.2 均匀B样条;

2.3 准均匀B样条:首尾节点阶数+1的样条;

2.4 非均匀有理B样条曲线(NURBS):高阶玩家发明的B样条,我也不会;

建议看下大神的博客,见参考文献1

3. pipeline:

3.1 计算控制点[P0,..,Pn],见参考文献2

3.1.1 求[u0,...,un]

3.1.2 求N矩阵

通过基函数和边界求导(矩阵欠定义了,根据三点估算导数/bessel tangent)把N矩阵填好

3.1.3 求F矩阵

源点云和边界求导填入F矩阵

3.1.4 求控制点

最后把控制点求出来

3.2 求插值点

有了控制点Pi和节点列表ui,自己要有一个插值点列表(我的插值点是3.1.1求的Un除以某个用户输入的点数要求,即准均匀B样条插值),首先判断插值点列表的插值点在节点列表的哪个位置,然后带到

求解C(k)

参考文献

Fun with geometry: NURBS(一): 动机、定义以及历史漫谈 - Fun With GeometryFun With Geometry

Fun with geometry:  B-Spline(十):样条曲线拟合-插值(Interpolation) - Fun With GeometryFun With Geometry

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值