设为首页收藏本站

点云技术相关产学研社区

 找回密码
 立即注册加入PCL中国点云技术相关产学研社区
查看: 656|回复: 1

b样条曲线拟合长度计算

[复制链接]

21

主题

0

好友

425

积分

中级会员

Rank: 3Rank: 3

发表于 2018-5-14 18:18:40 |显示全部楼层
本帖最后由 王三国 于 2018-5-14 18:49 编辑

      pcl 里仅有函数  
    // returns the length of the control polygon
    double ControlPolygonLength() const;
      用于计算所求拟合曲线的控制多边形长度,即控制点之间的长度之和。
      但是如下图所示
      
       黑色线条为控制多边形长度,红色为所拟合曲线,可以看出拟合曲线的长度和利用ControlPolygonLength()函数求得的控制多边形长度差异较大。
因此我们需要其他相关函数,手动编写代码实现曲线真实长度的计算,具体方法如下:
       1利用pcl::on_nurbs::Triangulation::convertCurve2PointCloud(fit.m_nurbs, cloud_curve, n_resolution)将曲线转化为采样点,该函数可以设置不同的分辨率,分辨率越大,越接近曲线的真实形状,下图中,黑色曲线为控制点曲线,红色或者绿色曲线为曲线采样点连线获得的曲线,可以看出不同分辨率曲线转化为的采样点差异较大。


      2 然后计算各个采样点之间的距离近似曲线的长度,注意,上面得到的采样点是有序点云,且第一个点与最后一点相同,因此,很容易实现这些采样点的距离和。
另外第一步的采样密度会影响后续的距离精度,以上图的点云为例,观察采样密度对曲线近似距离的影响,如下表和下图所示。、
采样密度 曲线近似距离(单位:cm)
183.0134
5 88.7401
10 88.9739
20 89.0186
3089.0259
40 89.0284
5089.0295
6089.0301
70 89.0305
80 89.0307
90 89.0309
100 89.0311

从上述图表可以看出,对于本数据,当采样密度为10或者10以上时,距离变化已经很小了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册加入PCL中国点云技术相关产学研社区

回复

使用道具 举报

157

主题

43

好友

2445

积分

金牌会员

Rank: 6Rank: 6

发表于 2018-9-18 15:41:17 |显示全部楼层
下次发问题帖后,发链接到我们的讨论群里(247215534),这样大家感兴趣的就可以来回复。
祝好运!!欢迎在PCL中国的社区分享自己领域相关的各种收集和知识。谢谢支持!!!
PCL中国志愿者GH。
回复

使用道具 举报

QQ|点云技术相关产学研社区 ( 陕ICP备13001629号 )  

GMT+8, 2019-1-17 10:15 , Processed in 0.139923 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部