CN109615702B - 网格补洞方法、图像处理设备及具有存储功能的装置 - Google Patents

网格补洞方法、图像处理设备及具有存储功能的装置 Download PDF

Info

Publication number
CN109615702B
CN109615702B CN201811239251.XA CN201811239251A CN109615702B CN 109615702 B CN109615702 B CN 109615702B CN 201811239251 A CN201811239251 A CN 201811239251A CN 109615702 B CN109615702 B CN 109615702B
Authority
CN
China
Prior art keywords
newly added
hole
vertex
dimensional grid
grid model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811239251.XA
Other languages
English (en)
Other versions
CN109615702A (zh
Inventor
向志华
祁春超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Zhongtou Huaxun Terahertz Technology Co ltd
Original Assignee
Shenzhen Zhongtou Huaxun Terahertz Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Zhongtou Huaxun Terahertz Technology Co ltd filed Critical Shenzhen Zhongtou Huaxun Terahertz Technology Co ltd
Priority to CN201811239251.XA priority Critical patent/CN109615702B/zh
Publication of CN109615702A publication Critical patent/CN109615702A/zh
Application granted granted Critical
Publication of CN109615702B publication Critical patent/CN109615702B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请公开了一种网格补洞方法、图像处理设备及具有存储功能的装置。其中,该网格补洞方法包括:获取三维网格模型;检测三维网格模型中是否存在孔洞;若存在孔洞,则对孔洞进行补洞操作;对经过补洞操作后的三维网格模型中新增的顶点进行平滑处理;其中,平滑处理是基于拉普拉斯和高斯曲率的平滑移动。通过上述方式,本申请能够提高孔洞修补效果。

Description

网格补洞方法、图像处理设备及具有存储功能的装置
技术领域
本申请涉及图像处理技术领域,特别是涉及一种网格补洞方法、图像处理设备及具有存储功能的装置。
背景技术
三角网格是几何模型的一种重要表示方法,广泛应用在虚拟现实、逆向工程、计算机图形学等领域中。随着激光三维扫描技术的快速发展,由扫描重建的三维模型得到越来越广泛的应用。但是由于测量原理(如对黑色不敏感)的限制、物体表面反射性的影响或被扫描物体自身结构的遮挡,扫描得到的模型往往存在着孔洞。这些孔洞极大地制约着模型的后续应用。
现有的网格补洞算法是直接连接孔洞的边缘点,或者先连接边缘点后,增加新的点进一步修补为更小的网格,则修补后的网格是处于一个平面上的,与现有三维模型(如球形模型)的其他网格不匹配,孔洞修补效果不理想。
发明内容
本申请主要提供一种网格补洞方法、图像处理设备及具有存储功能的装置,能够提高孔洞修补效果。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种网格补洞方法,包括:获取三维网格模型;检测三维网格模型中是否存在孔洞;若存在孔洞,则对孔洞进行补洞操作;对经过补洞操作后的三维网格模型中新增的顶点进行平滑处理;其中,平滑处理是基于拉普拉斯和高斯曲率的平滑移动。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种图像处理设备,包括:相互连接的通信电路和处理器;该处理器利用通信电路获取三维网格模型,并执行程序以实现如上所述的网格补洞方法。
为解决上述技术问题,本申请采用的又一个技术方案是:提供一种具有存储功能的装置,存储有指令,该指令被执行时实现如上所述的网格补洞方法。
本申请的有益效果是:区别于现有技术的情况,本申请的实施例中,获取三维网格模型,检测三维网格模型中是否存在孔洞,若存在孔洞,则对孔洞进行补洞操作,并对经过补洞操作后的三维网格模型中新增的顶点进行平滑处理;其中,平滑处理是基于拉普拉斯和高斯曲率的平滑移动。通过上述方式,本申请经过补洞操作后新增的顶点可以根据周围数据点的特征进行基于拉普拉斯和高斯曲率的平滑移动,使得新增顶点后的网格过渡平滑,且能够趋向于原始三维网格模型的变化趋势,从而使得补洞后的三维网格模型尽量保留原始三维网格模型的细节,提高孔洞修补效果。
附图说明
图1是本申请网格补洞方法第一实施例的流程示意图;
图2是图1中步骤S14的具体流程示意图;
图3是图2中步骤S141的具体流程示意图;
图4是图2中步骤S143的具体流程示意图;
图5是本申请网格补洞方法第二实施例的流程示意图;
图6是图5中步骤S121之前的流程示意图;
图7是利用图5中步骤S122查找下一个半边结构的场景示意图;
图8是本申请网格补洞方法第三实施例的流程示意图;
图9是当第三边大于预设长度的补洞场景示意图;
图10是本申请网格补洞前的示例性原始三角网格模型的示意图;
图11是本申请网格补洞后的示例性三角网格模型的示意图;
图12是本申请图像处理设备一实施例的结构示意图;
图13是本申请具有存储功能的装置一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,本申请网格补洞方法第一实施例包括:
S11:获取三维网格模型。
其中,该三维网格模型是一个三维(Three Dimensional,3D)模型,其包括点、面、纹理、法线等信息。该三维网格模型可以是三角网格模型,也可以是其他形状(如四边形、六边形等)拼接而成的网格模型。本申请中以三角网格模型为例进行说明。
具体地,可以采用3D模型文件,例如obj格式文件存储3D模型的点、面、纹理、法线等信息,通过OpenMesh库所带的IO函数读取含obj格式文件,则可以得到该obj格式文件中存储的三角网格模型,然后可以将上述三角网格模型数据存入到TriMesh_ArrayKernelT所申明的指针变量m_mesh中,其中,TriMesh_ArrayKernelT为OpenMesh库中所定义的数据格式类型。
S12:检测该三维网格模型中是否存在孔洞。
若存在孔洞,则执行如下步骤S13,否则表明该三维网格模型不存在孔洞,即不需要进行步骤,此方法流程结束。
具体地,获取三维网格模型数据后,尤其是封闭式的三角网格模型时,可以利用指针变量m_mesh先获取模型的边界数据,即边界半边结构链表(简称边界),再检测该边界中是否存在至少一个孔洞,即该边界是否可以区分成至少一个首尾连续的孔洞半边结构链表(简称孔洞),若可以将该边界区分为至少一个由多个边界半边结构首尾依次相连组成的孔洞,则表明该三角网格模型中存在孔洞。
然而,当该三角网格模型不是封闭的模型,如不封闭的网格面时,可以利用指针变量m_mesh先获取模型的边界数据后,检测该模型的边界是否存在首尾连续的至少两个孔洞,若存在至少两个孔洞,则可以认为最长的孔洞为外边界,此时可以剔除最长的孔洞,将剩余孔洞作为需要进行补洞操作的孔洞。若该模型的边界只存在一个首尾连续的孔洞,则表明该模型只存在一个外边界,此时不需要再进行补洞操作。
S13:对孔洞进行补洞操作。
具体地,在一个应用例中,在对孔洞进行补洞操作时,对每一个孔洞,每次可以进行一次补洞操作,例如每次可以将首尾相连的两个相邻的半边结构增加一条第三边形成一个三角形,或者在该第三边上增加一个新的顶点,连接其他顶点,形成两个三角形,又或者在三个半边结构形成的三角形中间增加一个新的顶点,与其他顶点连接,形成三个三角形等。然后,将新增的顶点和半边结构(如第三边)存入三角网格模型中,以便后续可以针对更新后的网格模型进行检测及补洞操作。
S14:对经过补洞操作后的三维网格模型中新增的顶点进行平滑处理。
其中,该平滑处理是基于拉普拉斯和高斯曲率的平滑移动。
具体地,在上述应用例中,为了使得增加顶点后的该三角网格模型过渡平滑,可以在每次补洞操作后,对该新增顶点进行拉普拉斯平滑处理,例如将该新增顶点向其相邻顶点(邻域点)的平均坐标位置移动。同时,由于高斯曲率实际反映的是曲面的弯曲程度,为了使得补洞操作后的三角网格模型尽量保留原始三维网格模型的细节,能够趋向于原始三维网格模型的变化趋势,提高孔洞修补效果,在对新增顶点进行平滑处理时,还可以调整该新增顶点的高斯曲率,将其趋向于其领域点的平均高斯曲率。其中,为了达到更好的补洞效果,上述平滑处理过程可以进行多次,例如执行5次。
可选地,如图2所示,步骤S14包括:
S141:计算新增的顶点的高斯曲率。
其中,该新增的顶点是通过步骤S13的补洞操作后,在该三维网格模型中新增加的数据点。
具体地,如图3所示,步骤S141包括:
S1411:计算新增的顶点的领域三角形中,以该新增的顶点为顶点的所有角度和。
其中,新增的顶点的领域三角形是指该新增的顶点与其领域点连接形成的三角形。该领域点包括与该新增的顶点相邻的所有数据点。
获取每个领域三角形中以该新增的顶点为顶点的顶角的角度,之后将所有角度求和,即可以得到以该新增的顶点为顶点的所有角度和。
S1412:计算新增的顶点的泰森多边形区域的面积。
泰森多边形(即Voronoi图或Dirichlet图),它是由一组由连接两邻点直线的垂直平分线组成的连续多边形组成。
以该新增的顶点的所有领域三角形的每个三角形的外接圆圆心为顶点,连接形成的多边形即为该新增的顶点的泰森多边形区域。
具体地,可以首先计算每个领域三角形的面积,以及以该新增的顶点为顶点的顶角角度,然后根据该顶角角度,计算每个领域三角形中具有的部分泰森多边形区域的面积,最后将所有的领域三角形中具有的部分泰森多边形区域的面积进行求和,即可以得到新增的顶点的泰森多边形区域的面积。
S1413:利用如下公式(1)计算得到新增的顶点的高斯曲率:
其中,r表示新增的顶点的高斯曲率,θadd表示新增的顶点的领域三角形中,以该新增的顶点为顶点的所有角度和,SV表示新增的顶点的泰森多边形区域的面积,π为圆周曲率。
具体地,通过上述步骤S1411和S1412计算得到该新增的顶点的领域三角形中,以该新增的顶点为顶点的所有角度和θadd,以及该新增的顶点的泰森多边形区域的面积SV后,利用上述公式(1)即可以计算得到该新增的顶点的高斯曲率r。
S142:计算新增的顶点的领域点的平均高斯曲率。
其中,该新增的顶点的领域点包括与该新增的顶点相邻的所有顶点。每个新增的顶点的领域点的高斯曲率与该新增的顶点的高斯曲率计算过程相同,具体可以参考上述步骤S1411~S1413,此处不再重复。
将所有领域点的高斯曲率进行平均计算,则可以得到该新增的顶点的领域点的平均高斯曲率。
S143:将新增的顶点的高斯曲率与领域点的平均高斯曲率的比值作为约束值,利用拉普拉斯函数计算移动向量。
S144:将新增的顶点沿移动向量进行位置变换。
具体地,将该新增的顶点进行拉普拉斯平滑处理时,可以先获取约束值(如0.1),然后以该约束值为函数参数,利用拉普拉斯函数计算该新增的顶点的移动向量,最后将新增的顶点沿移动向量进行位置变换,将该新增的顶点向领域点的平均坐标点处平移。其中,该约束值为是预先设置的用于调整新增的顶点平移程度的权值,该约束值小于或等于1。当该约束值等于1时,该新增的顶点直接移动到该领域点的平均坐标点处。
可选地,如图4所示,步骤S143包括:
S1431:获取新增的顶点的领域点的平均坐标。
具体地,在一个应用例中,可以利用指针变量m_mesh获取新增顶点的领域点的坐标,然后计算其坐标和addPoint,并将坐标和addPoint与领域点个数sum相除,即可以得到该新增顶点的领域点的平均坐标addPoint/sum。
S1432:计算新增的顶点到平均坐标的第一向量。
具体地,在一个应用例中,可以利用指针变量m_mesh获取新增顶点的坐标m_mesh->point(vHandle),且通过上述步骤S1431计算得到该新增顶点的领域点的平均坐标addPoint/sum后,则可以获取该新增的顶点到平均坐标的第一向量addPoint/sum-m_mesh->point(vHandle)。
S1433:利用约束值对第一向量进行加权,以得到移动向量。
在上述应用例中,通过步骤S141和S142分别计算得到该新增的顶点的高斯曲率gaussCurvature,及其领域点的平均高斯曲率meanGaussCurvature后,则可以将该新增的顶点的高斯曲率gaussCurvature和其领域点的平均高斯曲率meanGaussCurvature的比值meanGaussCurvature/gaussCurvature作为该约束值param。然后,利用该约束值对该第一向量进行加权计算之后,则可以得到该移动向量param*(addPoint/sum-m_mesh->point(vHandle))+m_mesh->point(vHandle)。
通过上述步骤S1433得到该移动向量后,则可以将新增的顶点沿移动向量进行位置变换,将该新增的顶点向领域点的平均坐标点处平移。其中,上述平移过程可以执行多次,以得到预期效果。
本实施例中,每次对孔洞进行一次补洞操作后,三维网格模型中孔洞会发生变化,例如执行补洞操作后的形成新三角形的两个原始半边结构会从孔洞及边界中剔除,孔洞及边界中会新增该第三边。此时,可以继续返回执行步骤S12,直到该三维网格模型中不存在孔洞,例如边界中不存在属于孔洞的半边结构,则补洞过程结束。
在其他实施例中,在检测该三维网格模型中是否存在孔洞,即判断三维网格模型中是否至少存在一个由首尾依次相连的多个半边结构组成的孔洞时,可以通过判断是否存在作为边界的半边结构来确定。
具体如图5所示,本申请网格补洞方法第二实施例是在本申请网格补洞方法第一实施例的基础上,进一步限定步骤S12包括:
S121:在三维网格模型的边界数据中获取一个待查找的半边结构。
其中,半边结构是一种数据结构,每个边可以分为两个半边,每个半边都是一个有向边,同一个边的两个半边方向相反。当一个边被两个面片共用(正则边)时,则每个面片都能各自拥有一个半边。如果一个边仅被一个面片占有(边界边)时,则这个面片仅拥有该边的一个半边,另一个半边即为闲置状态。该边界数据中的半边结构即为处于闲置状态的该半边。
可选地,如图6所示,在执行上述步骤S121之前,还包括:
S110:遍历该三维网格模型的半边结构。
S111:判断该半边结构是否为三维网格模型的边界。
若判断结果为是,则执行如下步骤S112,否则返回上述步骤S110,继续遍历该三维网格模型的半边结构。
具体地,可以利用m_mesh指针变量获取该三维网格模型的半边结构,然后通过OpenMesh库自带的边界判断函数is_boundary判断该半边结构是否为三维网格模型的边界。若该半边结构为三维网格模型的边界,则is_boundary函数返回值为true,否则返回值为false。
S112:将该半边结构存入三维网格模型的边界数据中。
当is_boundary函数返回值为true时,则表明当前m_mesh指针变量指向的半边结构为边界半边结构,此时可以将该半边结构存入三维网格模型的边界数据中。
S122:查找与该待查找的半边结构相连的下一个半边结构。
若找到与该待查找的半边结构相连的下一个半边结构,则执行如下步骤S123,否则执行如下步骤S125。
S123:将该待查找的半边结构和该下一个半边结构存入同一个孔洞数据中。
S124:将该下一个半边结构作为待查找的半边结构,并返回执行步骤S122。
S125:判定查找到一个孔洞。
具体地,在边界数据中可以随机获取该待查找的半边结构,也可以直接选取该边界数据中第一个半边结构作为该待查找的半边结构。结合图7所示,该待查找的半边结构A1可以作为一个孔洞的起始半边结构,获取该待查找的半边结构后,可以利用m_mesh指针向量查找起始顶点与该待查找的半边结构的末端顶点相同的半边结构,若查找到,则该起始顶点与该待查找的半边结构的末端顶点相同的半边结构即为该待查找的半边结构相连的下一个半边结构。例如图7中的半边结构A2,其起始顶点B与该待查找的半边结构A1的末端顶点相同。然后,将该待查找的半边结构和该下一个半边结构存入同一个孔洞数据中,并将该查找到的下一个半边结构作为新的待查找的半边结构,继续执行上述查找过程,直到查找不到下一个半边结构,则将已经存储的同一个孔洞数据作为一个孔洞,判定查找到一个孔洞。
由于一个模型可能存在多个孔洞,需要区分不同孔洞,以便对每个孔洞进行补洞操作。因此,步骤S125之后,可以进一步包括:
S126:判断三维网格模型的边界数据中所有半边结构是否均存入孔洞中。
具体地,在一个应用例中,可以在将一个半边结构存入某个孔洞后,将其从边界数据中删除。当三维网格模型的边界数据中还存在半边结构时,即边界数据非空时,则说明边界数据中还存在未存入孔洞中的半边结构,可以判定该三维网格模型的边界数据中所有半边结构不是均存入孔洞中。
当然,在其他应用例中,也可以在边界数据中保存至少两个数据链表,分别表示已存入孔洞的半边结构链表和未存入孔洞的半边结构链表。初始状态时,所有边界半边结构均存储在未存入孔洞的半边结构链表,当某个半边结构存入对应的孔洞后,则可以将该半边结构从未存入孔洞的半边结构链表移入已存入孔洞的半边结构链表中。因此,可以查找未存入孔洞的半边结构链表是否为空来判断该边界数据中所有半边结构是否均存入孔洞中。
若判断结果为否,则执行如下步骤S127。
S127:获取边界数据中未存入孔洞中的一个半边结构作为待查找的半边结构。
然后,返回执行步骤S122,以获取其他孔洞,直至边界数据中所有半边结构均存入孔洞中,即孔洞查找结束,可以执行后续补洞操作。
具体地,在上述应用例中,当该三维网格模型的边界数据中还存在未存入孔洞中的半边结构时,可以随机或者直接获取首个半边结构作为该待查找的半边结构,返回继续执行步骤S122,以获取其他孔洞。重复执行上述步骤,直到边界数据中所有半边结构均存入孔洞中后,则可以将该边界数据区分为多个孔洞,其中一个孔洞可以存储为一个数据链表,每个孔洞的数据链表不同。
在其他实施例中,当该三维网格模型为三角网格模型时,可以在补洞操作时,选择夹角最小的两个半边结构,添加一第三边形成新的三角形,并在需要时在第三边上增加新的顶点。
具体如图8所示,本申请网格补洞方法第三实施例是在本申请网格补洞方法第一实施例的基础上,进一步限定步骤S13包括:
S131:判断孔洞的半边结构数量是否大于三。
其中,由于该三维网格模型是三角网格模型,即由多个三角形拼接而成的三维网格模型,因此,每个孔洞应存在数量大于或等于三的边界半边结构。
若该孔洞的半边结构数量不大于三,则执行如下步骤S132,否则执行步骤S133。
S132:将剩余的三个半边结构进行连接形成新的三角形。
当孔洞中的半边结构数量不大于三,由于孔洞中半边结构的数量应大于或等于三,则此时该孔洞中仅剩余三个半边结构。此时,可以直接将剩余的三个半边结构进行连接,即可以形成新的三角形。
S133:获取孔洞的半边结构中夹角最小的两个半边结构。
当孔洞中半边结构的数量大于三时,可以先获取孔洞中每两个相连的半边结构,计算其夹角,然后比较不同的两个半边结构的夹角,直到找到夹角最小的两个相连的半边结构。
S134:计算与夹角最小的两个半边结构直接构成三角形后,新加的第三边的长度。
当找到夹角最小的两个半边结构后,可以将该两个半边结构不共用的顶点进行连接,得到与该两个半边结构直接构成三角形的第三边,然后利用OpenMesh库自带的长度计算函数length(),即可以计算出该第三边的长度。
S135:判断第三边的长度是否大于预设长度。
其中,该预设长度为预先设定的需要增加新的顶点的半边长度阈值,该预设长度可以设置为三维网格模型的边界数据中所有半边结构的平均长度的两倍。
若该第三边的长度不大于预设长度,则执行如下步骤S136,否则执行步骤S137。
S136:在三维网格模型中增加该第三边,形成一个新的三角形。
具体地,在一个应用例中,计算出该第三边的长度后,获取该三维网格模型的所有半边结构的平均长度,比较该第三边的长度和该平均长度的两倍,若该第三边的长度不大于该平均长度的两倍,则可以直接在该三维网格模型中增加该第三边,与该夹角最小的两个半边结构形成一个新的三角形。
S137:在该第三边中间增加一个新的顶点。
S138:将新的顶点与夹角最小的两个半边结构的顶点连接,形成两个新的三角形。
具体地,结合图9所示,在另一个应用例中,当该第三边D1的长度大于所有半边结构的平均长度的两倍时,可以在该第三边D1中间增加一个新的顶点M,该新的顶点可以是该第三边D1的中点。然后,可以将该新的顶点M与夹角最小的两个半边结构B1、B2的顶点C、E和F进行连接,进而可以形成两个新的三角形。
每次执行上述步骤131~S138之后,三维网格模型的边界和孔洞数据会更改,此时可以返回执行步骤S12,直到该三维网格模型中不存在孔洞时,则该三维网格模型的所有孔洞被修补完成,例如图10的原始三角网格模型将会被修补成为如图11所示的新三角网格模型。
如图12所示,本申请图像处理设备一实施例中,该图像处理设备60包括:相互连接的通信电路601和处理器602。
该通信电路601用于发送和接收数据,是图像处理设备60与其他设备进行通信的接口。具体地,该通信电路601用于获取三维网格模型,如三角网格模型。
处理器602控制通信设备的操作,处理器602还可以称为CPU(Central ProcessingUnit,中央处理单元)。处理器602可能是一种集成电路芯片,具有信号的处理能力。处理器602还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
具体地,该处理器602用于执行程序以实现如本申请网格补洞方法第一至第三任一实施例或其不冲突的组合所提供的方法。
当然,在其他实施例中,该图像处理设备60还可以包括存储器(图未示)等其他部件,此处不做具体限定。
本实施例中的图像处理设备可以是移动终端、固定终端、服务器、安检设备、服装定制设备等,也可以是集成的独立部件,例如图像处理芯片。
本实施例的图像处理设备中,处理器将经过补洞操作后新增的顶点根据周围数据点的特征进行基于拉普拉斯和高斯曲率的平滑移动,使得新增顶点后的网格过渡平滑,且能够趋向于原始三维网格模型的变化趋势,从而使得补洞后的三维网格模型尽量保留原始三维网格模型的细节,提高孔洞修补效果。
如图13所示,本申请具有存储功能的装置一实施例中,具有存储功能的装置70中存储有程序指令701,该程序指令701被执行时实现如本申请网格补洞方法第一至第三任一实施例或其不冲突的组合所提供的方法。
其中,具有存储功能的设备70可以是便携式存储介质如U盘、光盘,也可以是终端、服务器或集成的独立部件,例如图像处理芯片等。
本实施例中,该具有存储功能的设备内部存储的程序指令被执行时,经过补洞操作后新增的顶点可以根据周围数据点的特征进行基于拉普拉斯和高斯曲率的平滑移动,使得新增顶点后的网格过渡平滑,且能够趋向于原始三维网格模型的变化趋势,从而使得补洞后的三维网格模型尽量保留原始三维网格模型的细节,提高孔洞修补效果。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (7)

1.一种网格补洞方法,其特征在于,包括:
获取三维网格模型;
检测所述三维网格模型中是否存在孔洞;
若存在孔洞,则对所述孔洞进行补洞操作;
对经过所述补洞操作后的三维网格模型中新增的顶点进行平滑处理;
其中,所述平滑处理是基于拉普拉斯和高斯曲率的平滑移动;
所述对经过所述补洞操作后的三维网格模型中新增的顶点进行平滑移动包括:
计算所述新增的顶点的高斯曲率;
计算所述新增的顶点的领域点的平均高斯曲率;
将所述新增的顶点的高斯曲率与所述领域点的平均高斯曲率的比值作为约束值,利用拉普拉斯函数计算移动向量;
将所述新增的顶点沿所述移动向量进行位置变换;
所述计算所述新增的顶点的高斯曲率包括:
计算所述新增的顶点的领域三角形中,以所述新增的顶点为顶点的所有角度和;
计算所述新增的顶点的泰森多边形区域的面积;
利用如下公式计算得到所述新增的顶点的高斯曲率:
其中,r表示所述新增的顶点的高斯曲率,θadd表示所述新增的顶点的领域三角形中,以所述新增的顶点为顶点的所有角度和,SV表示所述新增的顶点的泰森多边形区域的面积;
所述检测所述三维网格模型中是否存在孔洞包括:
判断所述三维网格模型中是否至少存在一个由首尾依次相连的多个半边结构组成的孔洞;
若判断结果为是,则判定所述三维网格模型中存在孔洞;
所述判断所述三维网格模型中是否至少存在一个由首尾依次相连的多个半边结构组成的孔洞包括:
在所述三维网格模型的边界数据中获取一个待查找的半边结构;
查找与所述待查找的半边结构相连的下一个半边结构;
若找到所述下一个半边结构,则将所述待查找的半边结构和所述下一个半边结构存入同一个孔洞数据中;
将所述下一个半边结构作为所述待查找的半边结构,并返回执行所述查找与所述待查找的半边结构相连的下一个半边结构的步骤;
若查找不到所述下一个半边结构,则判定查找到一个孔洞;
所述对所述孔洞进行补洞操作包括:
判断所述孔洞的半边结构数量是否大于三;
若所述孔洞的半边结构数量大于三,则获取所述孔洞的半边结构中夹角最小的两个半边结构;
计算与所述夹角最小的两个半边结构直接构成三角形后,新加的第三边的长度;
判断所述第三边的长度是否大于预设长度;
若所述第三边的长度大于所述预设长度,则在所述第三边中间增加一个新的顶点;
将所述新的顶点与所述夹角最小的两个半边结构的顶点连接,形成两个新的三角形;
若所述第三边的长度不大于所述预设长度,则在所述三维网格模型中增加所述第三边,形成一个新的三角形。
2.根据权利要求1所述的方法,其特征在于,所述将所述新增的顶点的高斯曲率与所述领域点的平均高斯曲率的比值作为约束值,利用拉普拉斯函数计算移动向量包括:
获取所述新增的顶点的领域点的平均坐标;
计算所述新增的顶点到所述平均坐标的第一向量;
利用所述约束值对所述第一向量进行加权,以得到所述移动向量。
3.根据权利要求1所述的方法,其特征在于,所述判定查找到一个孔洞之后,还包括:
判断所述三维网格模型的边界数据中所有半边结构是否均存入孔洞中;
若判断结果为否,则获取所述边界数据中未存入孔洞中的一个半边结构作为所述待查找的半边结构;
返回执行所述查找与所述待查找的半边结构相连的下一个半边结构的步骤,以获取其他孔洞,直至所述边界数据中的半边结构均存入孔洞中。
4.根据权利要求1所述的方法,其特征在于,所述在所述三维网格模型的边界数据中获取一个半边结构之前,包括:
遍历所述三维网格模型的半边结构;
判断所述半边结构是否为所述三维网格模型的边界;
若判断结果为是,则将所述半边结构存入所述三维网格模型的边界数据中。
5.根据权利要求1所述的方法,其特征在于,所述预设长度为所述三维网格模型的边界数据中所有半边结构的平均长度的两倍。
6.一种图像处理设备,其特征在于,包括:相互连接的通信电路和处理器;
所述处理器利用所述通信电路获取三维网格模型,并执行程序以实现如权利要求1-5任一项所述的网格补洞方法。
7.一种具有存储功能的装置,存储有指令,其特征在于,所述指令被执行时实现如权利要求1-5任一项所述的网格补洞方法。
CN201811239251.XA 2018-10-23 2018-10-23 网格补洞方法、图像处理设备及具有存储功能的装置 Active CN109615702B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811239251.XA CN109615702B (zh) 2018-10-23 2018-10-23 网格补洞方法、图像处理设备及具有存储功能的装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811239251.XA CN109615702B (zh) 2018-10-23 2018-10-23 网格补洞方法、图像处理设备及具有存储功能的装置

Publications (2)

Publication Number Publication Date
CN109615702A CN109615702A (zh) 2019-04-12
CN109615702B true CN109615702B (zh) 2023-09-22

Family

ID=66002950

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811239251.XA Active CN109615702B (zh) 2018-10-23 2018-10-23 网格补洞方法、图像处理设备及具有存储功能的装置

Country Status (1)

Country Link
CN (1) CN109615702B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110097642B (zh) * 2019-04-25 2023-04-07 东北大学 一种基于半边结构的模型网格补全的方法
CN110992483B (zh) * 2019-11-19 2024-04-09 中国石油大学(华东) 基于逆向建模打印真实三维缝洞型油藏物理模型的方法
CN111489446B (zh) * 2020-04-08 2023-08-18 广东南方数码科技股份有限公司 多孔洞面拆分方法、装置、电子设备及可读存储介质
CN111768353B (zh) * 2020-06-30 2023-11-03 北京华捷艾米科技有限公司 一种三维模型的孔洞填补方法及装置
CN112184564A (zh) * 2020-08-21 2021-01-05 湖北三江航天红峰控制有限公司 一种基于半边排序法的三维孔洞补偿方法
CN115350482B (zh) * 2022-08-25 2023-12-12 浙江大学 一种基于数据驱动的水密三维玩具模型开版方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE20304656U1 (de) * 2003-03-21 2004-07-29 Neoperl Gmbh Sanitärer Wasserauslauf sowie Einsetzteil dafür
CN101882326A (zh) * 2010-05-18 2010-11-10 广州市刑事科学技术研究所 基于中国人全面部结构形数据的三维颅面复原方法
CN102663823A (zh) * 2012-04-01 2012-09-12 北京农业信息技术研究中心 植物器官网格曲面孔洞修补方法及系统
CN102708591A (zh) * 2012-04-28 2012-10-03 浙江大学 一种数字牙网格模型的孔洞修补方法
CN104361632A (zh) * 2014-11-03 2015-02-18 北京航空航天大学 一种基于Hermite径向基函数的三角网格补洞方法
CN104599314A (zh) * 2014-06-12 2015-05-06 深圳奥比中光科技有限公司 三维模型重建方法与系统
CN105894561A (zh) * 2016-03-30 2016-08-24 中国科学院计算技术研究所 一种离散曲面上基于曲率分布的颜色映射方法及系统
CN107067476A (zh) * 2017-05-11 2017-08-18 重庆市劢齐医疗科技有限责任公司 一种基于高阶拉普拉斯算子的快速网格补洞方法
CN108230452A (zh) * 2017-12-18 2018-06-29 华侨大学 一种基于纹理合成的模型补洞方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE20304656U1 (de) * 2003-03-21 2004-07-29 Neoperl Gmbh Sanitärer Wasserauslauf sowie Einsetzteil dafür
CN101882326A (zh) * 2010-05-18 2010-11-10 广州市刑事科学技术研究所 基于中国人全面部结构形数据的三维颅面复原方法
CN102663823A (zh) * 2012-04-01 2012-09-12 北京农业信息技术研究中心 植物器官网格曲面孔洞修补方法及系统
CN102708591A (zh) * 2012-04-28 2012-10-03 浙江大学 一种数字牙网格模型的孔洞修补方法
CN104599314A (zh) * 2014-06-12 2015-05-06 深圳奥比中光科技有限公司 三维模型重建方法与系统
CN104361632A (zh) * 2014-11-03 2015-02-18 北京航空航天大学 一种基于Hermite径向基函数的三角网格补洞方法
CN105894561A (zh) * 2016-03-30 2016-08-24 中国科学院计算技术研究所 一种离散曲面上基于曲率分布的颜色映射方法及系统
CN107067476A (zh) * 2017-05-11 2017-08-18 重庆市劢齐医疗科技有限责任公司 一种基于高阶拉普拉斯算子的快速网格补洞方法
CN108230452A (zh) * 2017-12-18 2018-06-29 华侨大学 一种基于纹理合成的模型补洞方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
三维封闭三角网格模型中的孔洞修补算法研究与实现;戴维;《中国优秀硕士学位论文全文数据库信息科技辑》(第10期);I138-543 *

Also Published As

Publication number Publication date
CN109615702A (zh) 2019-04-12

Similar Documents

Publication Publication Date Title
CN109615702B (zh) 网格补洞方法、图像处理设备及具有存储功能的装置
Marshall et al. Robust segmentation of primitives from range data in the presence of geometric degeneracy
Woo et al. A new segmentation method for point cloud data
US11100710B2 (en) Extracting a feature tree from a mesh
Bergström et al. Robust registration of surfaces using a refined iterative closest point algorithm with a trust region approach
US20050052452A1 (en) 3D computer surface model generation
CN112233249B (zh) 基于密集点云的b样条曲面拟合方法及装置
US20170124726A1 (en) System and method for determining wall thickness
US10445908B1 (en) Computer handling of polygons
CN114359042A (zh) 点云拼接方法和装置、三维扫描仪及电子设备
WO2014014524A1 (en) Methods and systems for acquiring and ranking image sets
Skinner et al. 3D point cloud upsampling for accurate reconstruction of dense 2.5 D thickness maps
Hu et al. Efficient and automatic plane detection approach for 3-D rock mass point clouds
Tran et al. eSphere: extracting spheres from unorganized point clouds: how to extract multiple spheres accurately and simultaneously
CN114863060A (zh) 基于点云的三维模型重建方法、装置、设备及存储介质
CN109767391A (zh) 点云去噪方法、图像处理设备及具有存储功能的装置
CN108010114B (zh) 基本图元点云曲面的几何形状识别方法以及特征识别方法
US8289332B2 (en) Apparatus and method for determining intersections
US20040128648A1 (en) Face correlation between computer aided design models
Mokhtarian et al. Curvature computation on free-form 3-D meshes at multiple scales
Tanaka et al. Accuracy-based sampling and reconstruction with adaptive grid for parallel hierarchical tetrahedrization
Hauenstein et al. Curvature determination in range images: new methods and comparison study
Mokhtarian et al. Estimation of error in curvature computation on multi-scale free-form surfaces
He et al. GFOICP: Geometric Feature Optimized Iterative Closest Point for 3D Point Cloud Registration
Bird et al. Autonomous void detection and characterisation in point clouds and triangular meshes

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 518102 room 430, building 37, chentian Industrial Zone, Baotian 1st Road, Xixiang street, Bao'an District, Shenzhen City, Guangdong Province

Applicant after: Shenzhen Zhongtou Huaxun Terahertz Technology Co.,Ltd.

Applicant after: CHINA COMMUNICATION TECHNOLOGY Co.,Ltd.

Address before: 518102 room 430, building 37, chentian Industrial Zone, Baotian 1st Road, Xixiang street, Bao'an District, Shenzhen City, Guangdong Province

Applicant before: SHENZHEN CCT THZ TECHNOLOGY Co.,Ltd.

Applicant before: CHINA COMMUNICATION TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20230613

Address after: 518000 Shenzhen, Baoan District, Xixiang, Guangdong Xixiang street, thirty-seventh fields, 430 estate.

Applicant after: Shenzhen Zhongtou Huaxun Terahertz Technology Co.,Ltd.

Address before: 518102 room 430, building 37, chentian Industrial Zone, Baotian 1st Road, Xixiang street, Bao'an District, Shenzhen City, Guangdong Province

Applicant before: Shenzhen Zhongtou Huaxun Terahertz Technology Co.,Ltd.

Applicant before: CHINA COMMUNICATION TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant