• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 25
    • 下载费用:30 金币  

    重庆时时彩合法骗局: 一种三角网格的生成方法和系统.pdf

    关 键 词:
    一种 三角 网格 生成 方法 系统
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201611247771.6

    申请日:

    2016.12.29

    公开号:

    CN106683190A

    公开日:

    2017.05.17

    当前法律状态:

    实审

    有效性:

    审中

    法律详情: 实质审查的生效IPC(主分类):G06T 17/30申请日:20161229|||公开
    IPC分类号: G06T17/30 主分类号: G06T17/30
    申请人: 中国科学院长春光学精密机械与物理研究所
    发明人: 吕源治; 张洪宇; 沙欧
    地址: 130033 吉林省长春市经济技术开发区东南湖大路3888号
    优先权:
    专利代理机构: 北京集佳知识产权代理有限公司 11227 代理人: 王宝筠
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201611247771.6

    授权公告号:

    |||

    法律状态公告日:

    2017.06.09|||2017.05.17

    法律状态类型:

    实质审查的生效|||公开

    摘要

    本发明提供了一种三角网格的生成方法和系统,包括获取被测物体的空间曲线数据列表;将当前空间点的三维坐标值依次设定为所述空间曲线数据列表中若干个空间点的三维坐标值,获取当前空间点的临近点,并将当前空间点到临近点的距离与预设的最小距离阈值和最大距离阈值进行比较,以判定当前空间点的类型,根据当前空间点的类型以及相应的三角网格生成算法对当前空间点进行处理,以生成三角网格数据。与传统的三角网格生成方法相比,本发明提供的三角网格生成方法计算复杂性小、计算效率高、可修复性好。

    权利要求书

    1.一种三角网格的生成方法,其特征在于,包括:
    获取被测物体的空间曲线数据列表,所述空间曲线数据列表包含若干个空间点的三维
    坐标值;
    将相关空间点的编号设定为编号初始值,将当前空间点的三维坐标值依次设定为所述
    若干个空间点的三维坐标值;
    获取所述当前空间点的临近点,并将所述当前空间点到所述临近点的距离与预设的最
    小距离阈值和最大距离阈值进行比较,以判定所述当前空间点的类型,所述当前空间点的
    类型包括过疏点、过密点、增长点和回扫点;
    根据所述当前空间点的类型以及相应的三角网格生成算法对所述当前空间点进行处
    理,以生成三角网格数据;
    其中,所述三角网格数据包括三角网格的空间点数据列表、边数据列表和三角形数据
    列表,所述空间点数据列表用于保存构成三角网格的所有空间点的三维坐标值,所述边数
    据列表用于保存构成三角网格的每条线段的起始空间点在所述空间点数据列表中的编号,
    所述三角形数据列表用于保存构成三角网格的每个三角形的线段在所述边数据列表中的
    编号,所述临近点为所述空间点数据列表中到所述当前空间点的距离最小的非相关空间
    点。
    2.根据权利要求1所述的生成方法,其特征在于,判定所述当前空间点的类型,包括:
    若所述当前空间点到所述临近点的距离小于所述最小距离阈值,则所述当前空间点的
    类型为过密点;
    若所述当前空间点到所述临近点的距离大于所述最大距离阈值,则所述当前空间点的
    类型为过疏点;
    若所述当前空间点到所述临近点的距离介于所述最小距离阈值和所述最大距离阈值
    之间,且所述当前空间点投影在所述临近点构成的所有三角形之外,则所述当前空间点的
    类型为增长点;
    若所述当前空间点到所述临近点的距离介于所述最小距离阈值和所述最大距离阈值
    之间,且所述当前空间点投影在所述临近点构成的三角形之内,则所述当前空间点的类型
    为回扫点。
    3.根据权利要求2所述的生成方法,其特征在于,根据所述当前空间点的类型以及相应
    的三角网格生成算法对所述当前空间点进行处理,包括:
    若所述当前空间点的类型为过密点,则将所述相关空间点的编号设置为所述编号初始
    值,将所述相关空间点的类型设置为类型初始值。
    4.根据权利要求2所述的生成方法,其特征在于,根据所述当前空间点的类型以及相应
    的三角网格生成算法对所述当前空间点进行处理,包括:
    若所述当前空间点的类型为过疏点,则将所述当前空间点的三维坐标值保存到所述空
    间点数据列表中,将所述当前空间点的编号设置为所述当前空间点的三维坐标值在所述空
    间点数据列表中的编号;
    判断所述相关空间点的编号是否为所述编号初始值;
    若是,则将所述相关空间点的编号设置为所述当前空间点的编号,将所述相关空间点
    的类型设置为过疏点;
    若否,则连接所述当前空间点与所述相关空间点,并将所述相关空间点的编号设置为
    所述当前空间点的编号,将所述相关空间点的类型设置为过疏点;
    其中,连接所述当前空间点与所述相关空间点的具体操作为将所述当前空间点的编号
    和所述相关空间点的编号保存到所述边数据列表中。
    5.根据权利要求2所述的生成方法,其特征在于,根据所述当前空间点的类型以及相应
    的三角网格生成算法对所述当前空间点进行处理,包括:
    若所述当前空间点的类型为增长点,则将所述当前空间点的三维坐标值保存到所述空
    间点数据列表中,将所述当前空间点的编号设置为所述当前空间点的三维坐标值在所述空
    间点数据列表中的编号;
    判断所述相关空间点的编号是否为所述编号初始值;
    若所述相关空间点的编号为所述编号初始值,则连接所述当前空间点和所述空间点数
    据列表中到所述当前空间点距离最近的边界点;
    若所述相关空间点的编号不为所述编号初始值且所述相关空间点的类型为过疏点,则
    连接所述当前空间点和所述相关空间点,连接所述当前空间点和所述空间点数据列表中到
    所述当前空间点距离最近的边界点;
    若所述相关空间点的编号不为所述编号初始值且所述相关空间点类型不为过疏点,则
    连接所述当前空间点和所述相关空间点,连接所述当前空间点和与所述相关空间点通过边
    界边相连的边界点,并生成三角形;
    将所述相关空间点的编号设置为所述当前空间点的编号,将所述相关空间点的类型设
    置为增长点;
    其中,所述边界点为所述当前空间点的非相关空间点,且所述边界点为三角网格中至
    少连接有一条边界边的空间点,所述边界边为三角网格中只参与构成一个三角形或者未参
    与构成三角形的线段;所述生成三角形的具体操作为将连接所述当前空间点和所述相关空
    间点的线段在所述边数据列表中的编号、连接所述当前空间点和与所述相关空间点通过边
    界边相连的所述边界点的线段在所述边数据列表中的编号、连接所述相关空间点和所述边
    界点的所述边界边在所述边数据列表中的编号保存到所述三角形数据列表中。
    6.根据权利要求2所述的生成方法,其特征在于,根据所述当前空间点的类型以及相应
    的三角网格生成算法对所述当前空间点进行处理,包括:
    若所述当前空间点的类型为回扫点,则将所述当前空间点的三维坐标值保存到所述空
    间点数据列表中,将所述当前空间点的编号设置为所述当前空间点的三维坐标值在所述空
    间点数据列表中的编号;
    删除所述三角形数据列表中的回扫三角形,所述回扫三角形为所述当前空间点投影到
    的所述临近点构成的三角形,分别连接所述当前空间点和参与构成所述回扫三角形的三个
    空间点,并生成三个三角形;
    将所述相关空间点的编号设置为所述编号初始值,将所述相关空间点的类型设置为所
    述类型初始值。
    7.根据权利要求1至6任一项所述的生成方法,其特征在于,将相关空间点的编号设置
    为编号初始值时,还包括:
    将所述当前空间点的编号设置为所述编号初始值,将所述当前空间点的三维坐标值设
    置为坐标初始值,将所述相关空间点的类型设置为所述类型初始值;
    将当前空间点的三维坐标值设定为任一所述空间点的三维坐标值,并对所述当前空间
    点进行处理之后,还包括:
    将所述当前空间点的编号设置为所述编号初始值,将所述当前空间点的三维坐标值设
    置为所述坐标初始值。
    8.一种三角网格的生成系统,其特征在于,包括:
    获取???,用于获取被测物体的空间曲线数据列表,所述空间曲线数据列表包含若干
    个空间点的三维坐标值;
    设定???,用于将相关空间点的编号设定为编号初始值,将当前空间点的三维坐标值
    依次设定为所述若干个空间点的三维坐标值;
    类型判定???,用于获取所述当前空间点的临近点,并将所述当前空间点到所述临近
    点的距离与预设的最小距离阈值和最大距离阈值进行比较,以判定所述当前空间点的类
    型,所述当前空间点的类型包括过疏点、过密点、增长点和回扫点;
    处理???,用于根据所述当前空间点的类型以及相应的三角网格生成算法对所述当前
    空间点进行处理,以生成三角网格数据;
    其中,所述三角网格数据包括三角网格的空间点数据列表、边数据列表和三角形数据
    列表,所述空间点数据列表用于保存构成三角网格的所有空间点的三维坐标值,所述边数
    据列表用于保存构成三角网格的每条线段的起始空间点在所述空间点数据列表中的编号,
    所述三角形数据列表用于保存构成三角网格的每个三角形的线段在所述边数据列表中的
    编号,所述临近点为所述空间点数据列表中到所述当前空间点的距离最小的非相关空间
    点。
    9.根据权利要求8所述的系统,其特征在于,当所述当前空间点到所述临近点的距离小
    于所述最小距离阈值时,所述类型判定??榕卸ㄋ龅鼻翱占涞愕睦嘈臀艿?;
    当所述当前空间点到所述临近点的距离大于所述最大距离阈值时,所述类型判定???br />判定所述当前空间点的类型为过疏点;
    当所述当前空间点到所述临近点的距离介于所述最小距离阈值和所述最大距离阈值
    之间,且所述当前空间点投影在所述临近点构成的所有三角形外时,所述类型判定??榕?br />定所述当前空间点的类型为增长点;
    当所述当前空间点到所述临近点的距离介于所述最小距离阈值和所述最大距离阈值
    之间,且所述当前空间点投影在所述临近点构成的三角形内时,所述类型判定??榕卸ㄋ?br />述当前空间点的类型为回扫点。
    10.根据权利要求9所述的系统,其特征在于,所述处理??榘ǎ?br />第一处理单元,用于在所述当前空间点的类型为过密点时,将所述相关空间点的编号
    设置为所述编号初始值,将所述相关空间点的类型设置为类型初始值;
    第二处理单元,用于在所述当前空间点的类型为过疏点时,将所述当前空间点的三维
    坐标值保存到所述空间点数据列表中,将所述当前空间点的编号设置为所述当前空间点的
    三维坐标值在所述空间点数据列表中的编号,并判断所述相关空间点的编号是否为所述编
    号初始值,若所述相关空间点的编号为所述编号初始值,则将所述相关空间点的编号设置
    为所述当前空间点的编号,将所述相关空间点的类型设置为过疏点;若所述相关空间点的
    编号不为所述编号初始值,则连接所述当前空间点与所述相关空间点,将所述相关空间点
    的编号设置为所述当前空间点的编号,将所述相关空间点的类型设置为过疏点;其中,连接
    所述当前空间点与所述相关空间点的具体操作为将所述当前空间点的编号和所述相关空
    间点的编号保存到所述边数据列表中;
    第三处理单元,用于在所述当前空间点的类型为增长点时,将所述当前空间点的三维
    坐标值保存到所述空间点数据列表中,将所述当前空间点的编号设置为所述当前空间点的
    三维坐标值在所述空间点数据列表中的编号,并判断所述相关空间点的编号是否为所述编
    号初始值,若所述相关空间点的编号为所述编号初始值,则连接所述当前空间点和所述空
    间点数据列表中到所述当前空间点距离最近的边界点,将所述相关空间点编号设置为所述
    当前空间点的编号,将所述相关空间点的类型设置为增长点,其中,所述边界点为所述当前
    空间点的非相关空间点,且所述边界点为三角网格中至少连接有一条边界边的空间点,所
    述边界边为三角网格中只参与构成一个三角形或者未参与构成三角形的线段;
    若所述相关空间点编号不为所述编号初始值且所述相关空间点的类型为过疏点,则连
    接所述当前空间点和所述相关空间点,连接所述当前空间点和所述空间点数据列表中到所
    述当前空间点距离最近的边界点,将所述相关空间点的编号设置为所述当前空间点的编
    号,将所述相关空间点的类型设置为增长点;
    若所述相关空间点的编号不为所述编号初始值且所述相关空间点类型不为过疏点,则
    连接所述当前空间点和所述相关空间点,连接所述当前空间点和与所述相关空间点通过边
    界边相连的边界点,并生成三角形,将所述相关空间点的编号设置为所述当前空间点的编
    号,将所述相关空间点的类型设置为增长点;其中,所述生成三角形的具体操作为将连接所
    述当前空间点和所述相关空间点的线段在所述边数据列表中的编号、连接所述当前空间点
    和与所述相关空间点通过边界边相连的所述边界点的线段在所述边数据列表中的编号、连
    接所述相关空间点和所述边界点的所述边界边在所述边数据列表中的编号保存到所述三
    角形数据列表中;
    第四处理单元,用于在所述当前空间点的类型为回扫点时,将所述当前空间点的三维
    坐标值保存到所述空间点数据列表中,将所述当前空间点的编号设置为所述当前空间点的
    三维坐标值在所述空间点数据列表中的编号,删除所述三角形数据列表中的回扫三角形,
    所述回扫三角形为所述当前空间点投影到的所述临近点构成的三角形,分别连接所述当前
    空间点和参与构成所述回扫三角形的三个空间点,并生成三个三角形,将所述相关空间点
    的编号设置为所述编号初始值,将所述相关空间点的类型设置为所述类型初始值。
    11.根据权利要求8至10任一项所述的系统,其特征在于,当所述设定??榻鱿喙?br />空间点的编号设置为所述编号初始值时,所述设定??榛褂糜诮龅鼻翱占涞愕谋嗪派?br />置为所述编号初始值,将所述当前空间点的三维坐标值设置为坐标初始值,将所述相关空
    间点的类型设置为所述类型初始值;
    将当前空间点的三维坐标值设定为任一所述空间点的三维坐标值,并对所述当前空间
    点进行处理之后,所述设定??榛褂糜诮龅鼻翱占涞愕谋嗪派柚梦霰嗪懦跏贾?,
    将所述当前空间点的三维坐标值设置为所述坐标初始值。

    说明书

    一种三角网格的生成方法和系统

    技术领域

    本发明涉及逆向工程技术领域,更具体地说,涉及一种三角网格的生成方法和系
    统。

    背景技术

    长久以来,对真实物体几何尺寸的精确测量主要依赖于游标卡尺、千分尺、角度尺
    等测量工具的接触式测量,但是,这种测量方式无法测量形状不规则的物体的尺寸,并且,
    对于文物古迹等要求非接触测量的对象也存在技术瓶颈。而随着相关学科的发展以及新技
    术新需求的推动,三维扫描技术应运而生,该技术能够在不接触被测物体的情况下,使用三
    维扫描系统扫描被测物体并生成三角网格模型,该三角网格模型可以用来描述被测物体的
    表面特征。目前,该技术已经被广泛应用于工业设计领域的辅助制造与检验、医疗领域的手
    术定位与康复、游戏娱乐领域的实景建模与仿真以及考古领域的遗址?;び敫丛?。

    其中,三角网格模型的构建过程主要包括数据采集与模型重构两部分。在数据采
    集过程中,需要使用三维扫描仪。如图1所示,三维扫描仪3由照射光源2和双目相机4组成,
    当被测物体1将照射光线反射进互成一定夹角的双目相机4时,便得到被测物体1的一组立
    体图像5。随着三维扫描仪3位置的不断变化,立体图像的数量不断增多,这些立体图像分别
    记录了被测物体1不同位置、不同角度的图像信息。在模型重构过程中,如图2所示,首先,根
    据三角测量原理,按照获取立体图像5的时间先后顺序,计算出每组立体图像中记录的被测
    物体1表面的空间曲线数据6,并将所有空间曲线数据统一到相同的坐标系中,然后,根据获
    取的空间曲线数据6生成三角网格模型7,并根据三角网格模型7生成三维曲面模型8,其中,
    三角网格模型也称为三角网格。

    三角网格是描述被测物体表面特征的唯一数据,并且,贯穿于模型的整个生命周
    期,对三角网格的分析与认知程度以及对数据结构的处理与建模能力直接决定了三维扫描
    技术能否真实还原被测物体的外形结构和尺寸特征。但是,现有的三角网格的生成方法计
    算复杂度较大。鉴于此,我们需要寻求一种三维扫描系统中三角网格的生成方法,以最低的
    计算量还原被测物体的外形尺寸。

    发明内容

    有鉴于此,本发明提供了一种三角网格的生成方法和系统,以提供一种计算量较
    小的三角网格生成方法。

    为实现上述目的,本发明提供如下技术方案:

    一种三角网格的生成方法,包括:

    获取被测物体的空间曲线数据列表,所述空间曲线数据列表包含若干个空间点的
    三维坐标值;

    将相关空间点的编号设定为编号初始值,将当前空间点的三维坐标值依次设定为
    所述若干个空间点的三维坐标值;

    获取所述当前空间点的临近点,并将所述当前空间点到所述临近点的距离与预设
    的最小距离阈值和最大距离阈值进行比较,以判定所述当前空间点的类型,所述当前空间
    点的类型包括过疏点、过密点、增长点和回扫点;

    根据所述当前空间点的类型以及相应的三角网格生成算法对所述当前空间点进
    行处理,以生成三角网格数据;

    其中,所述三角网格数据包括三角网格的空间点数据列表、边数据列表和三角形
    数据列表,所述空间点数据列表用于保存构成三角网格的所有空间点的三维坐标值,所述
    边数据列表用于保存构成三角网格的每条线段的起始空间点在所述空间点数据列表中的
    编号,所述三角形数据列表用于保存构成三角网格的每个三角形的线段在所述边数据列表
    中的编号,所述临近点为所述空间点数据列表中到所述当前空间点的距离最小的非相关空
    间点。

    优选的,判定所述当前空间点的类型,包括:

    若所述当前空间点到所述临近点的距离小于所述最小距离阈值,则所述当前空间
    点的类型为过密点;

    若所述当前空间点到所述临近点的距离大于所述最大距离阈值,则所述当前空间
    点的类型为过疏点;

    若所述当前空间点到所述临近点的距离介于所述最小距离阈值和所述最大距离
    阈值之间,且所述当前空间点投影在所述临近点构成的所有三角形之外,则所述当前空间
    点的类型为增长点;

    若所述当前空间点到所述临近点的距离介于所述最小距离阈值和所述最大距离
    阈值之间,且所述当前空间点投影在所述临近点构成的三角形之内,则所述当前空间点的
    类型为回扫点。

    优选的,根据所述当前空间点的类型以及相应的三角网格生成算法对所述当前空
    间点进行处理,包括:

    若所述当前空间点的类型为过密点,则将所述相关空间点的编号设置为所述编号
    初始值,将所述相关空间点的类型设置为类型初始值。

    优选的,根据所述当前空间点的类型以及相应的三角网格生成算法对所述当前空
    间点进行处理,包括:

    若所述当前空间点的类型为过疏点,则将所述当前空间点的三维坐标值保存到所
    述空间点数据列表中,将所述当前空间点的编号设置为所述当前空间点的三维坐标值在所
    述空间点数据列表中的编号;

    判断所述相关空间点的编号是否为所述编号初始值;

    若是,则将所述相关空间点的编号设置为所述当前空间点的编号,将所述相关空
    间点的类型设置为过疏点;

    若否,则连接所述当前空间点与所述相关空间点,并将所述相关空间点的编号设
    置为所述当前空间点的编号,将所述相关空间点的类型设置为过疏点;

    其中,连接所述当前空间点与所述相关空间点的具体操作为将所述当前空间点的
    编号和所述相关空间点的编号保存到所述边数据列表中。

    优选的,根据所述当前空间点的类型以及相应的三角网格生成算法对所述当前空
    间点进行处理,包括:

    若所述当前空间点的类型为增长点,则将所述当前空间点的三维坐标值保存到所
    述空间点数据列表中,将所述当前空间点的编号设置为所述当前空间点的三维坐标值在所
    述空间点数据列表中的编号;

    判断所述相关空间点的编号是否为所述编号初始值;

    若所述相关空间点的编号为所述编号初始值,则连接所述当前空间点和所述空间
    点数据列表中到所述当前空间点距离最近的边界点;

    若所述相关空间点的编号不为所述编号初始值且所述相关空间点的类型为过疏
    点,则连接所述当前空间点和所述相关空间点,连接所述当前空间点和所述空间点数据列
    表中到所述当前空间点距离最近的边界点;

    若所述相关空间点的编号不为所述编号初始值且所述相关空间点类型不为过疏
    点,则连接所述当前空间点和所述相关空间点,连接所述当前空间点和与所述相关空间点
    通过边界边相连的边界点,并生成三角形;

    将所述相关空间点的编号设置为所述当前空间点的编号,将所述相关空间点的类
    型设置为增长点;

    其中,所述边界点为所述当前空间点的非相关空间点,且所述边界点为三角网格
    中至少连接有一条边界边的空间点,所述边界边为三角网格中只参与构成一个三角形或者
    未参与构成三角形的线段;所述生成三角形的具体操作为将连接所述当前空间点和所述相
    关空间点的线段在所述边数据列表中的编号、连接所述当前空间点和与所述相关空间点通
    过边界边相连的所述边界点的线段在所述边数据列表中的编号、连接所述相关空间点和所
    述边界点的所述边界边在所述边数据列表中的编号保存到所述三角形数据列表中。

    优选的,根据所述当前空间点的类型以及相应的三角网格生成算法对所述当前空
    间点进行处理,包括:

    若所述当前空间点的类型为回扫点,则将所述当前空间点的三维坐标值保存到所
    述空间点数据列表中,将所述当前空间点的编号设置为所述当前空间点的三维坐标值在所
    述空间点数据列表中的编号;

    删除所述三角形数据列表中的回扫三角形,所述回扫三角形为所述当前空间点投
    影到的所述临近点构成的三角形,分别连接所述当前空间点和参与构成所述回扫三角形的
    三个空间点,并生成三个三角形;

    将所述相关空间点的编号设置为所述编号初始值,将所述相关空间点的类型设置
    为所述类型初始值。

    优选的,将相关空间点的编号设置为编号初始值时,还包括:

    将所述当前空间点的编号设置为所述编号初始值,将所述当前空间点的三维坐标
    值设置为坐标初始值,将所述相关空间点的类型设置为所述类型初始值;

    将当前空间点的三维坐标值设定为任一所述空间点的三维坐标值,并对所述当前
    空间点进行处理之后,还包括:

    将所述当前空间点的编号设置为所述编号初始值,将所述当前空间点的三维坐标
    值设置为所述坐标初始值。

    一种三角网格的生成系统,包括:

    获取???,用于获取被测物体的空间曲线数据列表,所述空间曲线数据列表包含
    若干个空间点的三维坐标值;

    设定???,用于将相关空间点的编号设定为编号初始值,将当前空间点的三维坐
    标值依次设定为所述若干个空间点的三维坐标值;

    类型判定???,用于获取所述当前空间点的临近点,并将所述当前空间点到所述
    临近点的距离与预设的最小距离阈值和最大距离阈值进行比较,以判定所述当前空间点的
    类型,所述当前空间点的类型包括过疏点、过密点、增长点和回扫点;

    处理???,用于根据所述当前空间点的类型以及相应的三角网格生成算法对所述
    当前空间点进行处理,以生成三角网格数据;

    其中,所述三角网格数据包括三角网格的空间点数据列表、边数据列表和三角形
    数据列表,所述空间点数据列表用于保存构成三角网格的所有空间点的三维坐标值,所述
    边数据列表用于保存构成三角网格的每条线段的起始空间点在所述空间点数据列表中的
    编号,所述三角形数据列表用于保存构成三角网格的每个三角形的线段在所述边数据列表
    中的编号,所述临近点为所述空间点数据列表中到所述当前空间点的距离最小的非相关空
    间点。

    优选的,当所述当前空间点到所述临近点的距离小于所述最小距离阈值时,所述
    类型判定??榕卸ㄋ龅鼻翱占涞愕睦嘈臀艿?;

    当所述当前空间点到所述临近点的距离大于所述最大距离阈值时,所述类型判定
    ??榕卸ㄋ龅鼻翱占涞愕睦嘈臀璧?;

    当所述当前空间点到所述临近点的距离介于所述最小距离阈值和所述最大距离
    阈值之间,且所述当前空间点投影在所述临近点构成的所有三角形外时,所述类型判定模
    块判定所述当前空间点的类型为增长点;

    当所述当前空间点到所述临近点的距离介于所述最小距离阈值和所述最大距离
    阈值之间,且所述当前空间点投影在所述临近点构成的三角形内时,所述类型判定??榕?br />定所述当前空间点的类型为回扫点。

    优选的,所述处理??榘ǎ?br />

    第一处理单元,用于在所述当前空间点的类型为过密点时,将所述相关空间点的
    编号设置为所述编号初始值,将所述相关空间点的类型设置为类型初始值;

    第二处理单元,用于在所述当前空间点的类型为过疏点时,将所述当前空间点的
    三维坐标值保存到所述空间点数据列表中,将所述当前空间点的编号设置为所述当前空间
    点的三维坐标值在所述空间点数据列表中的编号,并判断所述相关空间点的编号是否为所
    述编号初始值,若所述相关空间点的编号为所述编号初始值,则将所述相关空间点的编号
    设置为所述当前空间点的编号,将所述相关空间点的类型设置为过疏点;若所述相关空间
    点的编号不为所述编号初始值,则连接所述当前空间点与所述相关空间点,将所述相关空
    间点的编号设置为所述当前空间点的编号,将所述相关空间点的类型设置为过疏点;其中,
    连接所述当前空间点与所述相关空间点的具体操作为将所述当前空间点的编号和所述相
    关空间点的编号保存到所述边数据列表中;

    第三处理单元,用于在所述当前空间点的类型为增长点时,将所述当前空间点的
    三维坐标值保存到所述空间点数据列表中,将所述当前空间点的编号设置为所述当前空间
    点的三维坐标值在所述空间点数据列表中的编号,并判断所述相关空间点的编号是否为所
    述编号初始值,若所述相关空间点的编号为所述编号初始值,则连接所述当前空间点和所
    述空间点数据列表中到所述当前空间点距离最近的边界点,将所述相关空间点编号设置为
    所述当前空间点的编号,将所述相关空间点的类型设置为增长点,其中,所述边界点为所述
    当前空间点的非相关空间点,且所述边界点为三角网格中至少连接有一条边界边的空间
    点,所述边界边为三角网格中只参与构成一个三角形或者未参与构成三角形的线段;

    若所述相关空间点编号不为所述编号初始值且所述相关空间点的类型为过疏点,
    则连接所述当前空间点和所述相关空间点,连接所述当前空间点和所述空间点数据列表中
    到所述当前空间点距离最近的边界点,将所述相关空间点的编号设置为所述当前空间点的
    编号,将所述相关空间点的类型设置为增长点;

    若所述相关空间点的编号不为所述编号初始值且所述相关空间点类型不为过疏
    点,则连接所述当前空间点和所述相关空间点,连接所述当前空间点和与所述相关空间点
    通过边界边相连的边界点,并生成三角形,将所述相关空间点的编号设置为所述当前空间
    点的编号,将所述相关空间点的类型设置为增长点;其中,所述生成三角形的具体操作为将
    连接所述当前空间点和所述相关空间点的线段在所述边数据列表中的编号、连接所述当前
    空间点和与所述相关空间点通过边界边相连的所述边界点的线段在所述边数据列表中的
    编号、连接所述相关空间点和所述边界点的所述边界边在所述边数据列表中的编号保存到
    所述三角形数据列表中;

    第四处理单元,用于在所述当前空间点的类型为回扫点时,将所述当前空间点的
    三维坐标值保存到所述空间点数据列表中,将所述当前空间点的编号设置为所述当前空间
    点的三维坐标值在所述空间点数据列表中的编号,删除所述三角形数据列表中的回扫三角
    形,所述回扫三角形为所述当前空间点投影到的所述临近点构成的三角形,分别连接所述
    当前空间点和参与构成所述回扫三角形的三个空间点,并生成三个三角形,将所述相关空
    间点的编号设置为所述编号初始值,将所述相关空间点的类型设置为所述类型初始值。

    优选的,当所述设定??榻鱿喙乜占涞愕谋嗪派柚梦霰嗪懦跏贾凳?,所
    述设定??榛褂糜诮龅鼻翱占涞愕谋嗪派柚梦霰嗪懦跏贾?,将所述当前空间点的
    三维坐标值设置为坐标初始值,将所述相关空间点的类型设置为所述类型初始值;

    将当前空间点的三维坐标值设定为任一所述空间点的三维坐标值,并对所述当前
    空间点进行处理之后,所述设定??榛褂糜诮龅鼻翱占涞愕谋嗪派柚梦霰嗪懦跏?br />值,将所述当前空间点的三维坐标值设置为所述坐标初始值。

    与现有技术相比,本发明所提供的技术方案具有以下优点:

    本发明所提供的三角网格的生成方法和系统,不是在获得构成三角网格的所有空
    间曲线数据列表并统一到相同的坐标系之后,再生成三角网格数据,而是按照空间曲线数
    据列表的获取顺序对空间曲线数据列表逐个进行处理来实时生成三角网格数据,其中,在
    对任一空间曲线数据列表进行处理的过程中,根据当前空间点与临近点的相对位置关系将
    当前空间点分为过疏点、过密点、增长点以及回扫点,根据当前空间点的类型以及相应的三
    角网格生成算法对当前空间点进行处理。与传统的三角网格生成方法相比,本发明提供的
    三角网格生成方法计算复杂性小、计算效率高、可修复性好。

    附图说明

    为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现
    有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
    发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
    提供的附图获得其他的附图。

    图1为现有的三维扫描系统的数据采集系统的结构示意图;

    图2为现有的三维扫描系统的模型重构系统的结构示意图;

    图3为本发明实施例提供的三角网格生成方法的流程图;

    图4为本发明实施例提供的过密点的结构示意图;

    图5为本发明实施例提供的过疏点的结构示意图;

    图6为本发明实施例提供的增长点的结构示意图;

    图7为本发明实施例提供的回扫点的结构示意图;

    图8为本发明实施例提供的过密点的处理结果示意图;

    图9为本发明实施例提供的相关空间点编号不为0的过疏点的处理结果示意图;

    图10为本发明实施例提供的相关空间点编号为0的增长点的处理结果示意图;

    图11为本发明实施例提供的相关空间点编号不为0且相关空间点类型为过疏点的
    增长点的处理结果示意图;

    图12为本发明实施例提供的相关空间点编号不为0且相关空间点类型不为过疏点
    的增长点处理结果示意图;

    图13为本发明实施例提供的回扫点的处理结果示意图;

    图14为本发明实施例提供的三角网格生成系统的结构示意图。

    具体实施方式

    下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完
    整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例?;?br />本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
    实施例,都属于本发明?;さ姆段?。

    本发明实施例提供了一种三角网格的生成方法,如图3所示,该方法包括:

    S101:获取被测物体的空间曲线数据列表,所述空间曲线数据列表包含若干个空
    间点的三维坐标值;

    本发明中通过三维扫描系统获取被测物体的多个空间曲线数据列表,其中,空间
    曲线数据列表中包含若干空间点的三维坐标值,所述若干空间点的三维坐标值在空间曲线
    数据列表中的存储顺序按照空间曲线的连接顺序依次保存。本实施例中,按照三维扫描系
    统获取空间曲线数据列表的时间先后顺序,依次获取并处理每个空间曲线数据列表。在处
    理任意一个空间曲线数据列表的过程中,按照空间曲线数据列表中若干个空间点的存储顺
    序依次处理空间点。

    S102:将相关空间点的编号设定为编号初始值,将当前空间点的三维坐标值依次
    设定为所述若干个空间点的三维坐标值;

    在处理任一空间曲线数据列表之前,都需要进行数据的初始化,即将相关空间点
    的编号设置为编号初始值,当然,在一个具体实施例中,在进行数据的初始化时,还需将当
    前空间点的编号设置为编号初始值,将当前空间点的三维坐标值设置为坐标初始值,将相
    关空间点的类型设置为类型初始值。

    本实施例中,以编号初始值为0,坐标初始值为(0,0,0),类型初始值为“无”为例进
    行说明,即在处理任一空间曲线数据列表之前,需要将当前空间点的编号设置为0,将当前
    空间点的三维坐标值设置为(0,0,0),将相关空间点的编号设置为0,将相关空间点的类型
    设置为无。

    其中,在处理任一空间曲线数据列表的过程中,先按照存储顺序提取第一个空间
    点,将当前空间点的三维坐标值设定为第一个空间点的三维坐标值,然后对当前空间点进
    行类型判定等处理,处理完成后,再提取第二个空间点,将当前空间点的三维坐标值设定为
    第二个空间点的三维坐标值,然后对当前空间点进行类型判定等处理,处理完成后,再提取
    第三个空间点,以此类推。

    S103:获取当前空间点的临近点,并将当前空间点到临近点的距离与预设的最小
    距离阈值和最大距离阈值进行比较,以判定当前空间点的类型,当前空间点的类型包括过
    疏点、过密点、增长点和回扫点;

    在处理任一空间点的过程中,先将当前空间点的三维坐标值设定为该空间点的三
    维坐标值,假设该空间点的三维坐标值为(X1,Y1,Z1),则当前空间点的三维坐标值即为
    (X1,Y1,Z1),之后获取当前空间点的临近点,该临近点为三角网格的空间点数据列表中到
    当前空间点的距离最小的非相关空间点,并将当前空间点到临近点的距离与预设的最小距
    离阈值和最大距离阈值进行比较,以判定当前空间点的类型,所述当前空间点的类型包括
    过疏点、过密点、增长点和回扫点。

    其中,在获取临近点后,可根据临近点的三维坐标值以及当前空间点的三维坐标
    值(X1,Y1,Z1)计算出当前空间点到临近点的距离。最小距离阈值和最大距离阈值是根据建
    模精度需求预先设定的,其中,最大距离阈值大于最小距离阈值?;诖?,可根据当前空间
    点到临近点的距离与最大距离阈值和最小距离阈值的比较结果对当前空间点的类型进行
    判定。

    将当前空间点到临近点的距离与预设的最小距离阈值和最大距离阈值进行比较
    后,若当前空间点到临近点的距离小于最小距离阈值,则当前空间点的类型为过密点;若当
    前空间点到临近点的距离大于最大距离阈值,则当前空间点的类型为过疏点;若当前空间
    点到临近点的距离介于最小距离阈值和最大距离阈值之间,且当前空间点投影在临近点构
    成的所有三角形之外,则当前空间点的类型为增长点;若当前空间点到临近点的距离介于
    最小距离阈值和最大距离阈值之间,且当前空间点投影在临近点构成的三角形之内,则当
    前空间点的类型为回扫点。

    如图4所示,点A1为当前空间点,点B1为整个三角网格中或三角网格的空间点数据
    列表中距离当前空间点A1最近的非相关空间点,即点B1为当前空间点A1的临近点。由于当前
    空间点A1到临近点B1的距离小于最小距离阈值,因此,将当前空间点A1判定为过密点。

    如图5所示,点A2为当前空间点,点B2为整个三角网格或三角网格的空间点数据列
    表中距离当前空间点A2最近的非相关空间点,即点B2为当前空间点A2的临近点。由于当前空
    间点A2到临近点B2的距离大于最大距离阈值,因此,将当前空间点A2判定为过疏点。

    如图6所示,点A3为当前空间点,点B3为整个三角网格中或三角网格的空间点数据
    列表中距离当前空间点A3最近的非相关空间点,即点B3为当前空间点A3的临近点。由于当前
    空间点A3到临近点B3的距离介于最小距离阈值和最大距离阈值之间,且,当前空间点A3投影
    在临近点B3已参与构成的所有三角形的外边,因此,将当前空间点A3判定为增长点。

    如图7所示,点A4为当前空间点,点B4为整个三角网格中或三角网格的空间点数据
    列表中距离当前空间点A4最近的非相关空间点,即点B4为当前空间点A4的临近点。由于当前
    空间点A4到临近点B4的距离介于最小距离阈值和最大距离阈值之间,且,当前空间点A4投影
    在临近点B4已参与构成的任一三角形内,因此,将当前空间点A4判定为回扫点。

    需要说明的是,将当前空间点的三维坐标值设定为第一个空间曲线数据列表中的
    第一个空间点的三维坐标值时,由于三角网格的空间点数据列表中还未保存数据,无法获
    取当前空间点的临近点,因此,直接将当前空间点的三维坐标值保存到空间点数据列表中,
    将当前空间点的编号设置为该三维坐标值在空间点数据列表中的编号。之后,在将当前空
    间点的三维坐标值设定为第一个空间曲线数据列表中的其他空间点的三维坐标值时,再从
    三角网格的空间点数据列表中查找当前空间点的临近点。

    此外,还需要说明的是,本实施例中的当前空间点和相关空间点为动态变量,当对
    某一空间点处理完成后,会将该空间点的编号和类型等信息设置为相关空间点的信息,之
    后再将当前空间点的三维坐标值设定为下一空间点的三维坐标值。而非相关空间点是指三
    角网格的空间点数据列表中,除相关空间点之外的空间点。

    S104:根据当前空间点的类型以及相应的三角网格生成算法对当前空间点进行处
    理,以生成三角网格数据;

    其中,三角网格数据包括三角网格的空间点数据列表、边数据列表和三角形数据
    列表,空间点数据列表用于保存构成三角网格的所有空间点的三维坐标值,边数据列表用
    于保存构成三角网格的每条线段的起始空间点在空间点数据列表中的编号,即边数据列表
    用于保存构成三角网格的所有线段中任一线段的起始空间点在空间点数据列表中的编号,
    三角形数据列表用于保存构成三角网格的每个三角形的线段在边数据列表中的编号,即三
    角形数据列表用于保存构成三角网格的所有三角形中任一三角形的线段在边数据列表中
    的编号。

    具体地,根据当前空间点的类型以及相应的三角网格生成算法对当前空间点进行
    处理,包括:

    若当前空间点的类型为过密点,则将相关空间点的编号设置为编号初始值,如设
    置为0,将相关空间点的类型设置为类型初始值,如设置为无。

    若当前空间点的类型为过密点,则说明当前空间点的临近点构建的三角网格已满
    足精度需求,此时,不需将当前空间点与临近点构建新的三角形,从而可以放弃当前空间点
    的三维坐标值,即放弃空间曲线数据列表中与当前空间点对应的空间点。其中,将相关空间
    点的编号设置为编号初始值,如设置为0,将相关空间点的类型设置为类型初始值,如设置
    为无,就相当于放弃了该空间点。如图4和图8所示,对图4中过密点A1进行处理的结果实质
    为放弃处理该空间点。

    若当前空间点的类型为过疏点,则将当前空间点的三维坐标值保存到空间点数据
    列表中,将当前空间点的编号设置为当前空间点的三维坐标值在空间点数据列表中的编
    号;

    判断相关空间点的编号是否为编号初始值即是否为0;

    若相关空间点的编号为编号初始值即为0,则将相关空间点的编号设置为当前空
    间点的编号,将相关空间点的类型设置为过疏点;

    若相关空间点的编号不为编号初始值即不为0,则连接当前空间点与相关空间点,
    将相关空间点的编号设置为当前空间点的编号,将相关空间点的类型设置为过疏点;其中,
    连接当前空间点与相关空间点的具体操作为将当前空间点的编号和相关空间点的编号保
    存到边数据列表中,即将当前空间点的三维坐标值对应的空间点与相关空间点的三维坐标
    值对应的空间点的连接关系保存在边数据列表中,之后在生成三角网格模型时,这两个空
    间点之间会通过线段连接。

    图5为相关空间点编号为编号初始值即为0的过疏点的处理结果示意图,由于相关
    空间点的编号为0即相关空间点不存在,因此,不需要连接当前空间点和相关空间点,只将
    当前空间点保存到三角网格数据中即可,即将当前空间点的三维坐标值保存到空间点数据
    列表中,将当前空间点的编号设置为当前空间点的三维坐标值在空间点数据列表中的编
    号。之后,将相关空间点的编号设置为当前空间点的编号,将相关空间点的类型设置为过疏
    点,以便将当前空间点的三维坐标值设定为下一空间点的三维坐标值时,建立当前空间点
    与相关空间点的连接关系。

    图9为相关空间点编号不为编号初始值即不为0的过疏点的处理结果示意图,图9
    中点A5为被判定为过疏点的当前空间点,点B5为整个三角网格中距离点A5最近的非相关空
    间点,即点B5为点A5的临近点,点C5为相关空间点,在该情况下,不仅要将当前空间点A5保存
    到三角网格数据中,即将当前空间点的三维坐标值保存到空间点数据列表中,将当前空间
    点的编号设置为当前空间点的三维坐标值在空间点数据列表中的编号,而且,要连接当前
    空间点A5和相关空间点C5,即将当前空间点A5和相关空间点C5的编号保存到边数据列表中,
    图9中虚线表示点A5和点C5的连接关系。

    若当前空间点的类型为增长点,则将当前空间点的三维坐标值保存到空间点数据
    列表中,将当前空间点的编号设置为当前空间点的三维坐标值在空间点数据列表中的编
    号;

    判断当前空间点的相关空间点的编号是否为编号初始值即是否为0;

    若相关空间点的编号为编号初始值即为0,则连接当前空间点和空间点数据列表
    中到当前空间点距离最近的边界点,之后将相关空间点编号设置为当前空间点的编号,将
    相关空间点的类型设置为增长点;

    若相关空间点编号不为编号初始值即不为0且相关空间点的类型为过疏点,则连
    接当前空间点和相关空间点,连接当前空间点和空间点数据列表中到当前空间点距离最近
    的边界点,之后将相关空间点的编号设置为当前空间点的编号,将相关空间点的类型设置
    为增长点;

    若相关空间点的编号不为编号初始值即不为0且相关空间点的类型不为过疏点,
    则连接当前空间点和相关空间点,连接当前空间点和与相关空间点通过边界边相连的边界
    点,并生成三角形,之后将相关空间点的编号设置为当前空间点的编号,将相关空间点的类
    型设置为增长点;

    其中,边界点为当前空间点的非相关空间点,且边界点为三角网格中至少连接有
    一条边界边的空间点,边界边为三角网格中只参与构成一个三角形或者未参与构成三角形
    的线段;生成三角形的具体操作为将连接当前空间点和相关空间点的线段在边数据列表中
    的编号、连接当前空间点和与相关空间点通过边界边相连的边界点的线段在边数据列表中
    的编号、连接相关空间点和边界点的边界边在边数据列表中的编号保存到三角形数据列表
    中。

    图10为相关空间点编号为编号初始值即为0的增长点的处理结果示意图,图10中
    点A6为被判定为增长点的当前空间点,点D6为三角网格的空间点数据列表中到点A6距离最
    近的边界点,在该情况下,保存当前空间点A6,即将当前空间点A6的三维坐标值保存到空间
    点数据列表中,并连接当前空间点A6和边界点D6,即将当前空间点A6和边界点D6的编号保存
    到边数据列表中,图10中虚线表示点A6和点D6的连接关系。

    图11为相关空间点编号不为编号初始值即不为0且相关空间点类型为过疏点的增
    长点处理结果示意图,图11中点A7为被判定为增长点的当前空间点,点C7为相关空间点,点
    D7为三角网格的空间点数据列表中到当前空间点A7距离最近的边界点,在该情况下,保存当
    前空间点A7,即将当前空间点A7的三维坐标值保存到空间点数据列表中,并同时连接当前空
    间点A7和相关空间点C7以及当前空间点A7和边界点D7,即将当前空间点A7和相关空间点C7的
    编号保存到边数据列表中,将当前空间点A7和边界点D7的编号保存到边数据列表中,图11中
    虚线表示当前空间点A7和相关空间点C7以及当前空间点A7和边界点D7的连接关系。

    图12为相关空间点编号不为编号初始值即不为0且相关空间点类型不为过疏点的
    增长点处理结果示意图,图12中点A8为被判定为增长点的当前空间点,点C8为相关空间点,
    点E8为与相关空间点C8通过边界边相连的边界点,在该情况下,保存当前空间点A8,即将当
    前空间点A8的三维坐标值保存到空间点数据列表中,并同时连接当前空间点A8和相关空间
    点C8以及当前空间点A8和边界点E8,即将当前空间点A8和相关空间点C8的编号保存到边数据
    列表中,将当前空间点A8和边界点E8的编号保存到边数据列表中,然后将连接当前空间点A8
    和相关空间点C8的线段在边数据列表中的编号、连接当前空间点A8和边界点E8的线段在边
    数据列表中的编号、连接相关空间点C8和边界点E8的边界边在边数据列表中的编号保存到
    三角形数据列表中,生成△A8C8E8。图12中虚线表示当前空间点A8和相关空间点C8以及当前
    空间点A8和边界点E8的连接关系,点A8、点C8和点E8构成一个空间三角形。

    若当前空间点的类型为回扫点,此时,三角形数据列表中的回扫三角形即为当前
    空间点投影到的临近点构成的三角形,将当前空间点的三维坐标值保存到空间点数据列表
    中,将当前空间点的编号设置为当前空间点的三维坐标值在空间点数据列表中的编号,删
    除三角形数据列表中的回扫三角形,分别连接当前空间点和参与构成回扫三角形的三个空
    间点,并生成三个三角形,将相关空间点的编号设置为编号初始值即为0,将相关空间点的
    类型设置为类型初始值即设置为无。

    图13为回扫点的处理结果示意图,图13中点A9为被判定为回扫点的当前空间点,
    回扫三角形为△F9G9H9,在该情况下,删除三角网格的三角形数据列表中保存的△F9G9H9的
    信息即连接关系,保存当前空间点A9,即将当前空间点A9的三维坐标值保存到空间点数据列
    表中,连接当前空间点A9和构成回扫三角形的第一个空间点F9,连接当前空间点A9和构成回
    扫三角形的第二个空间点G9,连接当前空间点A9和构成回扫三角形的第三个空间点H9,即将
    当前空间点A9和第一个空间点F9的编号保存到边数据列表中,将当前空间点A9和第二个空
    间点G9的编号保存到边数据列表中,将当前空间点A9和第三个空间点H9的编号保存到边数
    据列表中,生成△A9F9G9、△A9F9H9和△A9G9H9这三个空间三角形,并保存到三角网格的三角
    形数据列表中,即将连接当前空间点A9和第一个空间点F9的线段在边数据列表中的编号、连
    接当前空间点A9和第二个空间点G9的线段在边数据列表中的编号、连接第一个空间点F9和
    第二个空间点G9的线段在边数据列表中的编号保存到三角形数据列表中,将连接当前空间
    点A9和第一个空间点F9的线段在边数据列表中的编号、连接当前空间点A9和第三个空间点
    H9的线段在边数据列表中的编号、连接第一个空间点F9和第三个空间点H9的线段在边数据
    列表中的编号保存到三角形数据列表中,将连接当前空间点A9和第二个空间点G9的线段在
    边数据列表中的编号、连接当前空间点A9和第三个空间点H9的线段在边数据列表中的编号、
    连接第二个空间点G9和第三个空间点H9的线段在边数据列表中的编号保存到三角形数据列
    表中。

    对该空间点处理完成后,将当前空间点编号设置为编号初始值即设置为0,将当前
    空间点坐标值设置为坐标初始值即设置为(0,0,0),按照存储顺序提取下一个空间点,并重
    复S103至S104的步骤,直到该空间曲线数据列表中没有空间点为止。

    之后,按照三维扫描系统获取空间曲线数据列表的时间先后顺序,提取下一个空
    间曲线数据列表,并重复步骤S102至S104。直到所有的空间曲线数据列表都处理完成后,三
    角网格数据也就生成完成,即可根据三角网格数据生成三角网格,之后根据三角网格模型
    生成三维曲面模型即可获得被测物体的几何尺寸等表面特征。

    下面以空间曲线数据列表中的若干个空间点的三维坐标值为(X1,Y1,Z1)、(X2,
    Y2,Z2)…..(Xn,Yn,Zn)为例,对三角网格的生成方法进行说明,其中,n为大于2的整数。

    先进行数据初始化,即将当前空间点的编号设置为0,当前空间点坐标值设置为
    (0,0,0),将相关空间点的编号设置为0,相关空间点的类型设置为无。然后将当前空间点的
    三维坐标值设定为空间点(X1,Y1,Z1)的三维坐标值,此时,当前空间点的三维坐标值为
    (X1,Y1,Z1)。

    从三角网格的空间点数据列表中获取当前空间点的临近点,假设临近点的三维坐
    标为(x1,y1,z1),根据坐标值(X1,Y1,Z1)和(x1,y1,z1)计算出当前空间点到临近点的距离
    为S,并将计算出的距离S与预设的最小距离阈值D1和最大距离阈值D2进行比较,若S<D1,
    则当前空间点的类型为过密点;若S>D2,则当前空间点的类型为过疏点;若D1<S<D2,则
    根据已生成的三角网格判断当前空间点在三角网格中的投影即当前空间点在三角网格中
    的位置是否在临近点构成的所有三角形之外,如果是,则当前空间点的类型为增长点,如果
    否,则当前空间点的类型为回扫点。

    若当前空间点的类型为过密点,则将相关空间点的编号设置为0,将相关空间点的
    类型设置为无。

    若当前空间点的类型为过疏点,则将当前空间点的三维坐标值(X1,Y1,Z1)保存到
    空间点数据列表中,假设该三维坐标值(X1,Y1,Z1)保存到空间点数据列表中的编号为10,
    则将当前空间点的编号设置为10,之后判断相关空间点的编号是否为0,若为0,则将相关空
    间点的编号设置为10,将相关空间点的类型设置为过疏点,若不为0,假设相关空间点的编
    号为9,则连接当前空间点与相关空间点,即将当前空间点的编号10和相关空间点的编号9
    保存到边数据列表中,之后将相关空间点的编号设置为10,将相关空间点的类型设置为过
    疏点?;诖?,在将当前空间点的三维坐标值设定为下一空间点的三维坐标值时,相关空间
    点的编号为10,而不为0。

    若当前空间点的类型为增长点,则将当前空间点的三维坐标值(X1,Y1,Z1)保存到
    空间点数据列表中,假设该三维坐标值(X1,Y1,Z1)保存到空间点数据列表中的编号为10,
    则将当前空间点的编号设置为10,之后判断相关空间点的编号是否为0。

    若为0,则从三角网格的空间点数据列表中获取到当前空间点距离最近的边界点,
    其中,边界点为三角网格中至少连接有一条边界边的空间点,边界边为三角网格中只参与
    构成一个三角形或者未参与构成三角形的线段,然后连接当前空间点和边界点,即将当前
    空间点的编号10和边界点在空间点数据列表中的编号保存到边数据列表中,之后将相关空
    间点的编号设置为10,将相关空间点的类型设置为增长点;

    若不为0,且相关空间点的类型为过疏点,例如,在上一空间点的处理过程中,将相
    关空间点的编号设定为了9,类型设定为了过疏点,则从三角网格的空间点数据列表中获取
    到当前空间点距离最近的边界点,连接当前空间点和相关空间点,连接当前空间点和边界
    点,即将当前空间点的编号10和相关空间点的编号9保存到边数据列表中,将当前空间点的
    编号10和边界点在空间点数据列表中的编号保存到边数据列表中,之后将相关空间点的编
    号设置为10,将相关空间点的类型设置为增长点;

    若不为0,且相关空间点的类型不为过疏点,例如,相关空间点的编号为9,类型为
    增长点,则从三角网格的空间点数据列表中获取与相关空间点通过边界边相连的边界点,
    连接当前空间点和相关空间点,连接当前空间点和与相关空间点通过边界边相连的边界
    点,即将当前空间点的编号10和相关空间点的编号9保存到边数据列表中,将当前空间点的
    编号10和与相关空间点通过边界边相连的边界点在空间点数据列表中的编号保存到边数
    据列表中,并将连接当前空间点和相关空间点的线段在边数据列表中的编号、连接当前空
    间点和与相关空间点通过边界边相连的边界点的线段在边数据列表中的编号、连接相关空
    间点和边界点的边界边在边数据列表中的编号保存到三角形数据列表中,以生成三角形,
    之后将相关空间点的编号设置为10,将相关空间点的类型设置为增长点。

    若当前空间点的类型为回扫点,将当前空间点的三维坐标值(X1,Y1,Z1)保存到空
    间点数据列表中,假设该三维坐标值(X1,Y1,Z1)保存到空间点数据列表中的编号为10,则
    将当前空间点的编号设置为10,之后删除三角形数据列表中的回扫三角形的信息,分别连
    接当前空间点和参与构成回扫三角形的三个空间点并生成三个三角形,之后将相关空间点
    的编号设置为0,将相关空间点的类型设置为无。

    将当前空间点编号设置为0,将当前空间点坐标值设置为(0,0,0)。

    之后,按照存储顺序提取下一个空间点(X2,Y2,Z2),将当前空间点的三维坐标值
    设定为该空间点的三维坐标值,此时,当前空间点坐标值设置为(X2,Y2,Z2),进行后续步
    骤,直到该空间曲线数据列表中的没有空间点为止。然后获取下一个空间曲线数据列表,重
    复上述步骤。

    本发明实施例提供的三维网格生成方法,不是在获得构成三角网格的所有空间曲
    线数据列表并统一到相同的坐标系之后,再生成三角网格数据,而是按照空间曲线数据列
    表的获取顺序对空间曲线数据列表逐个进行处理来实时生成三角网格数据,其中,在对任
    一空间曲线数据列表进行处理的过程中,根据当前空间点与临近点的相对位置关系将当前
    空间点分为过疏点、过密点、增长点以及回扫点,根据当前空间点的类型以及相应的三角网
    格生成算法对当前空间点进行处理。与传统的三角网格生成方法相比,本发明提供的三角
    网格生成方法计算复杂性小、计算效率高、可修复性好。

    本发明实施例还提供了一种三角网格的生成系统,如图14所示,包括获取???、
    设定???、类型判定???和处理???。

    其中,获取???,用于获取被测物体的空间曲线数据列表,该空间曲线数据列表
    包含若干个空间点的三维坐标值;

    设定???,用于将相关空间点的编号设定为编号初始值,将当前空间点的三维坐
    标值依次设定为所述若干个空间点的三维坐标值;

    类型判定???,用于获取当前空间点的临近点,并将当前空间点到临近点的距离
    与预设的最小距离阈值和最大距离阈值进行比较,以判定当前空间点的类型,当前空间点
    的类型包括过疏点、过密点、增长点和回扫点;

    处理???,用于根据当前空间点的类型以及相应的三角网格生成算法对当前空
    间点进行处理,以生成三角网格数据;

    其中,三角网格数据包括三角网格的空间点数据列表、边数据列表和三角形数据
    列表,空间点数据列表用于保存构成三角网格的所有空间点的三维坐标值,边数据列表用
    于保存构成三角网格的每条线段的起始空间点在空间点数据列表中的编号,三角形数据列
    表用于保存构成三角网格的每个三角形的线段在边数据列表中的编号,临近点为空间点数
    据列表中到当前空间点的距离最小的非相关空间点。

    本发明中通过三维扫描系统获取被测物体的多个空间曲线数据列表,多个空间曲
    线数据列表按照三维扫描系统获取的时间先后顺序存储,获取???也按照时间先后顺序
    依次获取空间曲线数据列表。其中,空间曲线数据列表中包含若干空间点的三维坐标值,若
    干空间点的三维坐标值在空间曲线数据列表中的存储顺序按照空间曲线的连接顺序依次
    保存。之后,设定???也按照存储顺序从空间曲线数据列表中依次提取空间点,并对空间
    点的类型进行判定。

    具体地,在当前空间点到临近点的距离小于最小距离阈值时,类型判定???判定
    当前空间点的类型为过密点;

    在当前空间点到临近点的距离大于最大距离阈值时,类型判定???判定当前空
    间点的类型为过疏点;

    在当前空间点到临近点的距离介于最小距离阈值和最大距离阈值之间,且当前空
    间点投影在临近点构成的所有三角形外时,类型判定???判定当前空间点的类型为增长
    点;

    在当前空间点到临近点的距离介于最小距离阈值和最大距离阈值之间,且当前空
    间点投影在临近点构成的三角形内时,类型判定???判定当前空间点的类型为回扫点。

    并且,处理???包括第一处理单元、第二处理单元、第三处理单元和第四处理单
    元。

    其中,第一处理单元,用于在当前空间点的类型为过密点时,将相关空间点的编号
    设置为编号初始值,将相关空间点的类型设置为类型初始值;

    第二处理单元,用于在当前空间点的类型为过疏点时,将当前空间点的三维坐标
    值保存到空间点数据列表中,将当前空间点的编号设置为当前空间点的三维坐标值在空间
    点数据列表中的编号,并判断相关空间点的编号是否为编号初始值,若相关空间点的编号
    为编号初始值,则将相关空间点的编号设置为当前空间点的编号,将相关空间点的类型设
    置为过疏点;若相关空间点的编号不为编号初始值,则连接当前空间点与相关空间点,将相
    关空间点的编号设置为当前空间点的编号,将相关空间点的类型设置为过疏点;其中,连接
    当前空间点与相关空间点的具体操作为将当前空间点的编号和相关空间点的编号保存到
    边数据列表中;

    第三处理单元,用于在当前空间点的类型为增长点时,将当前空间点的三维坐标
    值保存到空间点数据列表中,将当前空间点的编号设置为当前空间点的三维坐标值在空间
    点数据列表中的编号,并判断相关空间点的编号是否为编号初始值,若相关空间点的编号
    为编号初始值,则连接当前空间点和空间点数据列表中到当前空间点距离最近的边界点,
    将相关空间点编号设置为当前空间点的编号,将相关空间点的类型设置为增长点,其中,边
    界点为当前空间点的非相关空间点,且边界点为三角网格中至少连接有一条边界边的空间
    点,边界边为三角网格中只参与构成一个三角形或者未参与构成三角形的线段;若相关空
    间点编号不为编号初始值且相关空间点的类型为过疏点,则连接当前空间点和相关空间
    点,连接当前空间点和空间点数据列表中到当前空间点距离最近的边界点,将相关空间点
    的编号设置为当前空间点的编号,将相关空间点的类型设置为增长点;若相关空间点的编
    号不为编号初始值且相关空间点类型不为过疏点,则连接当前空间点和相关空间点,连接
    当前空间点和与相关空间点通过边界边相连的边界点,并生成三角形,将相关空间点的编
    号设置为当前空间点的编号,将相关空间点的类型设置为增长点;其中,生成三角形的具体
    操作为将连接当前空间点和相关空间点的线段在边数据列表中的编号、连接当前空间点和
    与相关空间点通过边界边相连的边界点的线段在边数据列表中的编号、连接相关空间点和
    边界点的边界边在边数据列表中的编号保存到三角形数据列表中;

    第四处理单元,用于在当前空间点的类型为回扫点时,将当前空间点的三维坐标
    值保存到空间点数据列表中,将当前空间点的编号设置为当前空间点的三维坐标值在空间
    点数据列表中的编号,删除三角形数据列表中的回扫三角形,回扫三角形为当前空间点投
    影到的临近点构成的三角形,分别连接当前空间点和参与构成回扫三角形的三个空间点,
    并生成三个三角形,将相关空间点的编号设置为编号初始值,将相关空间点的类型设置为
    类型初始值。

    除此之外,当设定??榻喙乜占涞愕谋嗪派柚梦嗪懦跏贾凳?,设定??榛褂?br />于将当前空间点的编号设置为编号初始值,将当前空间点的三维坐标值设置为坐标初始
    值,将相关空间点的类型设置为类型初始值;

    将当前空间点的三维坐标值设定为任一所述空间点的三维坐标值,并对当前空间
    点进行处理之后,设定??榛褂糜诮鼻翱占涞愕谋嗪派柚梦嗪懦跏贾?,将当前空间点
    的三维坐标值设置为坐标初始值。

    本发明实施例提供的三维网格生成系统,不是在获得构成三角网格的所有空间曲
    线数据列表并统一到相同的坐标系之后,再生成三角网格数据,而是按照空间曲线数据列
    表的获取顺序对空间曲线数据列表逐个进行处理来实时生成三角网格数据,其中,在对任
    一空间曲线数据列表进行处理的过程中,根据当前空间点与临近点的相对位置关系将当前
    空间点分为过疏点、过密点、增长点以及回扫点,根据当前空间点的类型以及相应的三角网
    格生成算法对当前空间点进行处理。与传统的三角网格生成方法相比,本发明提供的三角
    网格生成方法计算复杂性小、计算效率高、可修复性好。

    本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他
    实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置
    而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说
    明即可。

    对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。
    对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的
    一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明
    将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一
    致的最宽的范围。

    关于本文
    本文标题:一种三角网格的生成方法和系统.pdf
    链接地址://www.4mum.com.cn/p-6079552.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 南昌麻将视频教学 利用小程序广告赚钱 重庆快乐10分app 福彩22选5技巧 手机捕鱼的名片 福建31选7走势图带连线 快赢418泳坛夺金 龙江p62福彩开奖结果 浙江十一选五开奖结果控 足彩半全场怎么玩 山东时时彩网站 重庆幸运农场在线购买 秒速时时彩最精准人工计划 青海快三走势图 山东11选5玩法 北单奖金计算器