点云边界直角边修补系统及方法

文档序号:9709135阅读:965来源:国知局
点云边界直角边修补系统及方法
【技术领域】
[0001] 本发明涉及一种点云处理技术,尤其涉及一种点云边界直角边修补系统及方法。
【背景技术】
[0002] 在工业加工中,由于有些扫描仪精度不够,扫描的边界数据精度不够高,或者扫描 产品边界得到的边界点数据比较少,有很多点没有扫描出来,或者有些样品本身已损坏,通 过对损坏样品的扫描,无法得到正常样品的数据。在这些情况下,需要对扫描得到的数据进 行处理,对点云的边界进行修补处理。
[0003] 然而,由于扫描得到的点云边界数据有缺失,得到的边界数据比较少,边界看起来 就会比较稀薄,和其它地方点密度差别较大,因此修补的难度大。此外,对一些边界有损坏 的物品,由于完全没有扫描点,无法对边界进行修复。

【发明内容】

[0004] 鉴于以上内容,有必要提供一种点云边界直角边修补系统,其可以对点云的边界 进行修复。
[0005] 还有必要提供一种点云边界直角边修补方法,其可以对点云的边界进行修复。
[0006] -种点云边界直角边修补系统,该系统运行于主机中,该系统包括:三角网格化模 块,用于对待测产品的点云进行三角网格化处理,形成实体面;获取模块,用于从三角网格 化处理后的点云中获取边界点;查找模块,用于查找边界点中属于第一面的边界点及边界 点中属于第二面的边界点,所述第一面与第二面为待测产品的两个衔接面;计算模块,用于 计算第一面的边界点中每点到第二面的映射点,并形成第一面中要修补的第一区域,及计 算第二面的边界点中每点到第一面的映射点,形成第二面中要修补的第二区域;修补区域, 用于分别将第一区域划及第二区域多个小正方形,在每个小正方形区域内随机生成一个 点,当所有小正方形内都有一个点以后,即完成对第一区域及第二区域的修补。
[0007] -种点云边界直角边修补方法,该方法运用于主机中,该方法包括如下步骤:对待 测产品的点云进行三角网格化处理,形成实体面;从三角网格化处理后的点云中获取边界 点;查找边界点中属于第一面的边界点及边界点中属于第二面的边界点,所述第一面与第 二面为待测产品的两个衔接面;计算第一面的边界点中每点到第二面的映射点,并形成第 一面中要修补的第一区域,及计算第二面的边界点中每点到第一面的映射点,形成第二面 中要修补的第二区域;分别将第一区域划及第二区域多个小正方形,在每个小正方形区域 内随机生成一个点,当所有小正方形内都有一个点以后,即完成对第一区域及第二区域的 修补。
[0008] 相较于现有技术,所述的点云边界直角边修补系统及方法,其可以对点云的边界 进行修复。
【附图说明】
[0009] 图1是本发明点云边界直角边修补系统较佳实施例的运行环境示意图。
[0010] 图2是本发明点云边界直角边修补系统较佳实施例的功能模块图。
[0011] 图3是本发明点云边界直角边修补方法较佳实施例的作业流程图。
[0012] 图4是本发明对点75Γ进行二角网格化的不意图。
[0013] 图5是本发明点云中非边界点的示意图。
[0014] 图6是本发明点云中边界点的示意图。
[0015] 图7是本发明修补区域的立体示意图。
[0016] 图8是本发明修补区域的平面示意图。
[0017] 图9是本发明通过小正方形对第一区域及第二区域进行分割的示意图。
[0018] 图10是本发明对分割之后的第一区域及第二区域进行修补的示意图。
[0019] 主要元件符号说明
[0020]
[0021] 如下【具体实施方式】将结合上述附图进一步说明本发明。
【具体实施方式】
[0022] 如图1所示,是本发明点云边界直角边修补系统较佳实施例的运行环境示意图。 该点云边界直角边修补系统10运行于一台主机1中,该主机1连接一台显示设备2及输入 设备3。该主机1包括存储设备12,至少一个处理器14。所述输入设备3可以为键盘或鼠 标。所述主机1为,但不限于,个人计算机、服务器等设备。该主机1还连接有一量测设备 4。所述量测设备4通过电子耦合器在不同角度对量测设备4上的待测产品进行三维扫描, 并计算得到组成待测产品的点云。所述点云保存于一个TXT格式的文件中,该TXT格式的 文件记录待测产品的点云中每个点的坐标。
[0023] 在本实施例中,所述点云边界直角边修补系统10以软件程序或指令的形式安装 在存储设备12中,并由处理器14执行。在其它实施例中,所述存储设备12可以为主机1 外接的存储器。所述点云边界直角边修补系统10用于修补待测产品的两个面(例如,两个 直角面)衔接时空缺的区域,如图7中空白部分。
[0024] 如图2所示,是本发明点云边界直角边修补系统较佳实施例的功能模块图。该点 云边界直角边修补系统10包括三角网格化模块100、获取模块102、查找模块104、计算模块 106及修补模块108。本发明所称的模块是完成一特定功能的计算机程序段,比程序更适合 于描述软件在计算机中的执行过程,因此本发明以下对软件描述都以模块描述。
[0025] 所述三角网格化模块100用于对待测产品的点云进行三角网格化处理,形成实体 面。具体而言,从所述待测产品的点云中任意选取距离最近的两点确定一条有效边,以此有 效边作为三角形的边;寻找该有效边附近的第三点,要求该有效边与第三点所构成三角形 的外接圆内不包含其它点,否则舍弃该点;依次选取以三角形的另外两边作为有效边,寻找 有效边附近的点,构建新的三角形,要求有效边与第三点所构成的新的三角形的外接圆内 不包含其它点,依次操作循环,直到所述点云中所有的点都被连接成三角形,达到三角网格 化的效果,形成实体面。如图4所示,假设所述点云有4个的点(实际情况点数目远大于该 值),以AB为基准边,确定另一个顶点。过三角形ABC的外接圆内不包含其他点,故C点符 合要求,而过三角形ABD的外接圆内包含点C,故舍弃D点。最终以A,B,C三点构建三角形。 按照上述操作逻辑,依次操作循环,再分别以BC边,AC边以及新构建的三角形的边为基准, 构建新的三角形,直到点云中所有的点都被连接成三角形,达到三角网格化的效果,形成实 体面。
[0026] 所述获取模块102用于从三角网格化处理后的点云中获取边界点。
[0027] 具体而言,所述获取边界点的方式如下:三角网格化处理后的点云全部由三角形 组成,判断一个点是否为边界点,需先找出所有以该点为顶点的三角形,依次计算每个三角 形中以该点为顶点的夹角的度数,将所有以该点为顶点的夹角度数相加,如果和为360度, 则该点不是边界点,如果和小于360度,则该点为边界点。如图5所示,图中角Ζ Α0Β、角 Z B0C、角Z C0D、角Z D0E、角Z EOF及角Z F0A相加,和等于360,所以可以判断点0不是 边界点。如图6所示,图中角Z ABS及角Z SBC相加,和小于360,所以可以判断点B就是边 界点。
[0028] 所述查找模块104用于查找边界点中属于第一面的边界点及边界点中属于第二 面的边界点。所述第一面与第二面为待测产品的两个衔接面。具体而言,查找边界点中属于 第一面的边界点的方式为:根据最小二乘法将第一面的点云拟合成初始平面Plane(c,v) 及计算该初始平面的法向量;根据拟牛顿算法对初始平面的法向量进行迭代得到实际旋转 工作面平面Planel (cl,vl),即虚拟平面;根据最小二乘法迭代第一面的点云相对虚拟平 面的最佳位置,该最佳位置是使得第一面的点云中的点到虚拟平面距离平方和的平均最 小(拟牛顿解非线形方程式),从而得到
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1