基于Delaunay三角网的平面点云面积计算(python)

1、背景介绍

      三维点云密度比较高,可以根据点云数据精确计算物体表面面积,如建筑物水平占地面积、室内房间墙面面积等,如下图,这在实际应用中具有非常重要的作用。其实归根到底,计算上述面积,可以认为计算平面面积。

2、原理介绍     

       前面介绍过2种计算平面点云面积,分别为格网法、边缘点法。感兴趣的可以参考如下链接:

详解平面点云面积计算_c++ 鞋带 面积-CSDN博客

平面点云面积计算的两种方式-CSDN博客

      今天介绍一种基于Delaunay三角网方法估算平面点云方法,为什么Delaunay三角网可以计算平面点云面积呢?结合下面图进行讲解。如下图所示,为6个点生成的Delaunay三角网,可以发现这几个点构成的区域被划分成6个三角形区域。如果把每个三角形面积计算出来,再求和即可获取点云所占的平面面积。基于Delaunay三角网方法就是根据上述思想,实现点云面积估算。

    具体来说,首先对原始点云构建Delaunay三角网,对于每个三角形,利用三个点的坐标计算其面积。若三个点坐标为p1(x1,y1)、p2(x2,y2)、p3(x3,y3),那么该三角形面积为:

 0.5 * abs(x1 * y2 - x2 * y1 + x2 * y3 - x3 * y2 + x3 * y1 - x1 * y3)

  每个三角形面积计算得到,进行求和,即可计算出该点云所占面积。

3、代码测试与结果

      本程序基于python代码进行编写,在pycharm平台上进行运行,结合三方库scipy中Delaunay构建三角网。源代码下载链接如下:https://download.csdn.net/download/qq_32867925/89567911

该源代码包括两块测试数据,以及基于格网法计算点云面积。下载后,在pycharm上进行运行,点击绿色三角形进行运行。

3.1 测试数据一

      如下图所示,为一规则的矩形点云,其长宽分别为33.318、16.006,理论上面积为533.287。使用格网法、Delaunay三角网法,计算的面积如下。可以发现,Delaunay三角法计算的面积,更加接近真实值,为532.0625。图中是根据点云构建的Delaunay三角网,由于点之间比较近,所以三角网看起来比较密集。而格网法计算的面积为578,相对来说不是那么准确,但可以通过调整格网尺寸大小,实现面积估算。

 三角网局部放大图

3.2 测试数据二

      使用不规则点云进行计算,如下图为一三角形点云,相关参数如下,底长、高分别为35.875、24.507,其面积为439.594。使用格网法、Delaunay三角网法,计算的面积如下。可以发现,Delaunay三角法计算的面积,更加接近真实值,为459.953。而格网法计算的面积为491,相对来说不是那么准确。两种方法均出现一定偏差,原因是点云部分确实,如仔细看点云边缘处,如左下角处、右侧边缘等,不分点缺失,造成了计算值与真实值之间,存有一定偏差。

整个三角网局部三角网放大图

4、总结

      详细介绍了Delaunay三角网计算点云面积,并结合python编程,给出了测试结果。相比较格网法,该方法计算更加精确,同时不需要提取边缘点,相比较边缘点法更加简单。

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

点云实验室lab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值