opencv 平面法向量_基于散乱地面激光扫描点云数据的复杂立面中平面的自动提取...

基于散乱地面激光扫描点云数据的复杂立面中平面的自动提取

【摘要】:目前,越来越多的应用如三维建模,竣工测量,存档,恢复和重建都需要人工建立三维模型,从而用最真实的效果去详尽描述物体细节特征信息。因此,在计算机视觉、摄影测量和遥感领域,三维建模是一个综合而复杂的研究问题。因为它包括:提取,检测,重建对象的部件,以及针对复杂对象海量三维数据的自动化处理。

在从复杂对象获取海量三维数据的过程中,一方面,地面激光雷达TLS(Terrestrial Laser Scanner)由于其快速,因此在三维建模数据的获取上有着巨大的潜力。另一方面,对于一般的复杂对象,由于很多因素例如分辨率、配准步骤,对象的颜色、粗糙程度以及测量误差的影响,TLS获取到的大量(高达几百万)无结构(随即分布的)三维点云的局部密度不尽相同,并且包含大量随机噪点。大多数情况下都不可能手动地去编辑处理海量的3维点云,因为这样会耗时很长,甚至当planner表面需要的时候也不能这样进行操作。因此,即使对象是一个平坦表面或者线状边缘,从点云中提取对象特征仍然不是一件容易的任务。因此这个过程是极其重要的,该研究课题对于从人造建筑物中的数字存档有着重要意义。

我们希望仅仅通过使用作为潜在数据的点云来创建人造对象的3维计算机模型,但是问题是如何处理大量的通过TLS获得的三维测量点,以此来正确提取对象的主要属性和细节,比如平面表面和边线。尽管这个问题同TLS获取的数据没有关联,但是它关系到处理那些搜集到的数据的专业程度。

在元素的提取过程中,分割是最重要的一步。在过去的十年中,很过算法被设计成通过使用分割的方法从点云中去提取平面曲面。通常情况下,我们使用如下三种不同方法中的一种来获取分割点:区域增长,属性集群和模型拟合方法(RANSAC和Hough变化算法)。尽管区域增长和属性集群方法为了对在点云数据中出现的同类地区进行分组,因而采用了几何标准,但是模型拟合方法则是基于拟合几何原始形状。在实际应用中,大部分的分割方法使用几何信息来分割三维点云。这些信息通常包括每个点的位置(X,Y和Z),局部预测到的平面法线和最佳拟合结果的残差。然而,这些信息可能会被噪点所影响,并最终影响到分割的结果,导致了坏的分割的发生(过度分割,分割不足或没有分割)。这最终会导致提取过程和创建三维模型的失败。

区域增长方法因为必须定义正确的种子表面,因而在使用上受到了很大的制约,因为如果种子表面的定义错了(特别是在现有大量噪点数据的情况下),那么错误就会增加并导致处理的失败。因此,可以考虑一种对噪点数据敏感的方法。同样,当它被用来分隔海量的无规则的点云数据时,同样会导致错误的分隔结果(或高,或低甚至出现没有分割的情况)。因此,区域增长算法有的时候不是非常的透明,另外也不能提供均匀的应用。

虽然聚类方法提供了整体和灵活的方式从数据中提取同类特征,并且不局限于仅提取某一特定类型的特征,然而从基于集群算法的海量无规则的3维点云中提取的属性数据可能并不能用在实际的应用中,尤其是当存在噪点和离群数据,因为计算海量数据的集群多维特征的成本非常高,而且处理海量数据需要从激光扫描仪那里获得点云数据[Sapkota,2008].另外,这个方法对于数据中的噪点非常敏感,而且会被周围数据的定义所影响。因此,

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hi~ 可私信我了解后再进行下载~ 本资源上传时,遗漏了两个文件,分别是:data_filter_keep_order_output_index.hdvp 以及 IntensityImageToPiontsCloudImage.hdvp,购买了该资源的同学,给我留言,我会私信发给你们。 1.基于halcon算平台; 2.提供深度图源文件以及解压密码; 3.代码预览: */****************************** * @文档名称: 基于点云平面度测量。 * @作者: hugo * @版本: 1.1 * @日期: 2021-6-20 * @描述: 该方支持点云平面平面度测量。 ********************************/ dev_update_window ('on') dev_get_window (WindowHandle) read_image (imageReal, './replay_38893_2021-6-7.tif') xResolution:=0.06 yResolution:=0.06 zResolution:=0.001 ScaleFactor:=[xResolution,yResolution,zResolution] *采样区域1 create_drawing_object_rectangle2 (300, 120, rad(90), 30, 20, DrawID) set_drawing_object_params (DrawID, 'color', 'forest green') set_drawing_object_params (DrawID, 'line_width', 1) attach_drawing_object_to_window (WindowHandle, DrawID) .......... *平面度 height:=theta/zScale*0.001 *可视化高度差效果 visParamName := ['lut','alpha_0','intensity','color_1'] visParamValue := ['hsi',0.7,'coord_z','yellow'] Labels := ['','平面度:'+height+'mm',''] objs:=[ObjectModel3Ds[2],final_ObjectModel3Ds] visualize_object_model_3d (WindowHandle, objs, [], [], visParamName, visParamValue, 'Edited by AmazingRobot+', [Labels], '', PoseOut) *stop () clear_object_model_3d (plane_balls) for Index := 0 to |final_ObjectModel3Ds|-1 by 1 clear_object_model_3d (final_ObjectModel3Ds[Index]) endfor return () 谢谢您的信任~

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值