吊椅厂家
免费服务热线

Free service

hotline

010-00000000
吊椅厂家
热门搜索:
成功案例
当前位置:首页 > 成功案例

看一看:看一看;基于UG的点云数据滤波处理

发布时间:2021-11-18 15:46:08 阅读: 来源:吊椅厂家

摘要:目前UG还没有点云数据滤波处理的功能,为此本文以VC++作为开发平台,调用Maflab中平滑函数,在UG上开发了点云滤波模块中小型企业拆迁补偿标准,并给出了利用实例,证明了该模块的可行性。关键词:逆向工程点云数据滤波UG Matlab引言逆向工程(Reverse Engineering,简称RE)是现代设计、制造方法之1,是1门实用化程度很高的新产品开发技术。2O多年来,反求工程在理论上得到了广泛的研究,现阶段也出现了很多的专业的逆向软件,如美国EDS公司的Imageware、美国Raindrop(雨滴)公司的GeomagieStudio、英国DELCAM公司的CopyCAD、韩国INUS公司出品的RapidForm。对非接触式丈量设备所获得的丈量数据具有较好的数据处理和曲面反求功能,但在功能覆盖域、自动化程度、稳定性、与通用CAD软件的兼容性等方面还不够成熟,也没法做到类似于CAD软件的特点建模和参数化,实现模型的任意修改非常困难。目前市场上流行的3维造型软件UG具有较强的参数驱动的曲面造型、实体造型和特点造型的功能,但是UG软件对非接触式扫描所得的点云数据的预处理的功能相当弱,特别是在点云滤波处理方面,虽然UG的Pointscloud模块具有1定的反求功能,但实际上很少采取,主要缘由是由激光扫描获得的点云数据未经预处理,比如点云精简、滤波等,所以直接构面的效果不好。为此本文在UG软件平台上开发点云数据预处理中的点云滤波模块。其思路是:以VC++为开发平台强拆房屋赔偿标准,调用Matlab中的曲线拟和工具箱(Curve Fitting ToolBox)里的平滑函数smooth()在UG上开发点云数据滤波模块。1 点云数据滤波1.1点云数据滤波概述样件数字化的进程中或将多视点云数据对齐后不可避免地会产生噪声点,即1些明显背背设计意图、破坏曲线、曲面光顺的不公道的数据点。图1中点1、2、3即为噪声点。曲面重构前必须进行噪声点过滤,以减小噪声点对曲线、曲面重构的影响。

噪声点的滤除有多种方法。最简单的滤除方法就是手工删除,即通过图形界面显示,人LT=辨别明显的噪声点,并将它们从数据序列中删除。这类方法在数据量较小时比较适用,但对大量的点云数据处理则显得力不从心 。1.2点云数据滤波方法的简介点云的平滑滤波主要有以下3种方法 ,如图2所示,图中虚线所连的点代表激光扫描测得的点,实线所连的点代表平滑化后的点。

1)中值滤波法该方法将相邻的3个点取平均值来取代原始点,实行滤波。中值滤波法采取点的取值滤波窗口内各数据点的统计中值,故这类方法在消除数据毛刺方面,效果较好,如图2d)所示。2)均值滤波法该方法将采样点的值取滤波窗口内各数据点的统计平均值来取代原点,改变点云的位置,使点云平滑,如图2e)所示。3)高斯滤波法该方法以高斯滤波器在指定域内将高频的噪声滤除,高斯滤波法在指定域内的权重为高斯散布,其平均效果较小,在滤波的同时,能较好的保持数据形貌,因此常被使用,如图2b)所示。2 smooth()函数的滤波处理本文利用Matlab中曲线拟和工具箱(Curve Fitting ToolBox)里的平滑函数smooth()函数来实现1.2所述的几种滤波方法。由激光扫描所获得的 *.asc格式的点云数据可以看作1个n×3的2维矩阵,其中n代表数据点个数,每个点用其3维坐标( X,Y,Z)来描述。在n×3的2维矩阵中的每列(n×1的1维数组)分别表示该点云数据中每个点的(X, Y, Z)坐标值的集合。因此,smooth()函数对点云数据滤波,实质是对1个n×3的2维矩阵进行处理。2.1 smooth()函数的滤波流程smooth函数的表达式:Y=smooth(ydata,span,'method') (1)其中ydata表示输入的1维数组;span是滤波的步长,表示在滤波窗口内取的点的个数;method表示1.2中的滤波方法。由前面可以知道,获得的点云数据是1个n×3的2维数组,而在表达式(1)中ydata是1个1维数组,因此在smooth()函数处理滤波的关键问题是如何将2维数组拆分成1维数组,最后再将拆分的1维数组合并为2维数组。具体流程为:

2.2 smooth()函数滤波可行性的论证

代表p1,p2,... pi, ...pn,n个数据点,由前面的滤波方法介绍可知(以均值滤波为例),其数学定义式为:

可见smooth()函数滤波是完全可行的。其他两种滤波方法可以用1样的方法证明其可行性。3 点云数据滤波在UG中的实现3.1点云数据滤波模块软件编制本文以UG软件为2次开发平台国有土地征收与补偿方案有哪些,VC++作为开发语言,调用Matlab中的曲线拟和工具箱(Curve Fitting ToolBox)里的平滑函数smooth()来对点云数据进行滤波。其开发进程以下:1)利用UG的2次开发工具MenuScript对点云滤波模块进行菜单设计,系统菜单如图4所示。

2)系统的接口编制本文利用VC++在UG的平台上开发此模块.需要Vc++把点云数据传输给Matlab处理,把处理后的点云数据传输到UG中,其系统的接口如图5所示。

3)系统运行流程

运行的结果如图7所示。

在该对话框中输人欲处理的点云数据文件,在“文件输出:”文本框内输人处理后的点云数据文件寄存的位置,然后选择滤波方式,输人滤波步长,系统默许为5,最后单击“数据处理”,在指定的路径下生成处理后的*.asc码的点云数据文件。单击“完成”,将在UG界面上生成1个filter.prt的新的部件,处理后的点云数据将显示在UG的界面内。再利用UG对处理后的点云数据进行曲线曲面重构。3.2利用实例在点云数据滤波模块下的实例如图8所示,图(a)表示滤波前的点云数据,图(b)表示滤波后的点云数据,比较图(a)、图(b)可知滤波后的点云数据变得光顺棚户区改造的房屋可买吗

4 结语本文利用VC++调用Matlab中的平滑函数smooth()实现了对点云数据的滤波,并把它集成到UG软件上。因此既克服了逆向软件与UG的兼容性还不够成熟和没法做到类似于CAD软件的特点建模和参数化,实现模型的任意修改非常困难的缺点,又提高了UG的逆向处理功能,为后续的曲面重构提供了支持。参考文献1金涛,童水光等编著.逆向工程技术[M].北京:机械工业出版社,2O032王庆林.UG/Open GRIP适用编程基础[M].北京:清华大学出版社.2oo23胡道钟.微机平台的UG2次开发技能[J]、计算机辅助设计与制造.2000(1):l3⑴54董长虹.Matlab接口技术与利用[M].北京:国防工业出版社,20045应建勇.UG2次开发中MFC调用方法的研究[J].机电产品开发与创新.2005(11):102.103资讯分类行业动态帮助文档展会专题报道5金人物商家文章