请选择 进入手机版 | 继续访问电脑版

点云技术相关产学研社区

 找回密码
 立即注册加入PCL中国点云技术相关产学研社区

扫一扫,访问微社区

查看: 1255|回复: 1

b样条曲线拟合长度计算

[复制链接]
发表于 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中国点云技术相关产学研社区

x
回复

使用道具 举报

发表于 2018-9-18 15:41:17 | 显示全部楼层
回复 支持 反对

使用道具 举报

本版积分规则

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

GMT+8, 2019-12-10 20:43 , Processed in 0.418690 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表