本发明专利技术涉及一种获取物体几何质心的方法,用于三维流形所形成的物体,该方法包括计算三维流形的内部距离;构建针对三维流形的能量函数模型,采用梯度下降法对能量函数最小化处理,以得到三维流形相应的梯度函数;根据所得三维流形的能量函数的梯度函数,得到三维流形中两点之间的最短路径;针对三维流形中的点,随机选取N个不同的初值以分别对能量函数进行优化并得到最优能量函数值,以该最优能量函数值所对应的点作为物体的几何质心。该方法能够保证所得质心处于三维流形的内部,既不受物体外形影响,也能够避免遭受噪声和变形的不利影响。
【技术实现步骤摘要】
本专利技术涉及三维模型测量领域,尤其涉及一种获取物体几何质心的方法。
技术介绍
质心,又称质量中心,其在物理中有明确的定义:对于一个欧氏空间中的三维流形,其质心的坐标可以通过求解其内部所有点坐标的加权平均得到,质心能够使得惯性矩达到最小。然而,当物体的外形呈现非凸时,根据物理定义所得到的质心可能会落在该非凸物体的外部。在数字几何处理的很多应用场合中,要求质心必须落在三维流形的内部,并且保证质心对噪声和变形不敏感。显然,基于上述物理定义所得到的质心并不能满足此要求。
技术实现思路
本专利技术所要解决的技术问题是针对上述现有提供一种获取物体几何质心的方法。该方法能够保证所得到的质心处于三维流形的内部,并且既可以不受物体外形影响,又可以避免遭受噪声和变形的不利影响。本专利技术解决上述技术问题所采用的技术方案为:一种获取物体几何质心的方法,用于三维流形所形成的物体,其特征在于,包括如下步骤1至步骤6:步骤1,计算三维流形的内部距离;其中,三维流形的内部距离的计算过程包括如下步骤1-1至步骤1-3:步骤1-1,将所述物体对应的三维流形模型离散为多个四面体,以形成四面体网格;其中,所述四面体网格的获取过程包括如下步骤1-11和步骤1-12:步骤1-11,采用TetGen软件对所述物体对应的三维流形模型进行离散化处理,以生成高质量的四面体网格;步骤1-12,对四面体的梯度算子、散度算子以及拉普拉斯-贝尔特拉米算子分别进行离散化处理;其中,四面体的梯度算子、散度算子以及拉普拉斯-贝尔特拉米算子的离散化处理包括如下步骤1-121至步骤1-124:步骤1-121,假定在四面体网格内部的标量函数f线性变化,并设定标量函数f为该四面体网格上的分片线性函数;步骤1-122,根据四面体网络中每个四面体的分片线性函数,计算所述每个四面体的分片线性函数的梯度算子;其中,四面体h的分片线性函数的梯度算子标记为其中,Vh表示四面体h的体积,Sj为四面体h中与该四面体h的顶点j相对的三角形的面积,fj为四面体h的顶点j上的分片线性函数值,nj为四面体h中与该四面体h的顶点j相对的三角形上的单位法向量;步骤1-123,构建四面体网格内部的分段线性向量场,并设置四面体的顶点处的散度算子;其中,假设所构建的分段线性向量场g以及四面体h的顶点j处的散度算子分别设置如下:其中,m表示四面体网格中的四面体的数目;Vj表示四面体j的体积;步骤1-124,获取四面体网格中拉普拉斯-贝尔特拉米算子的离散化数值;其中:Δ=V-1L;其中,Δ表示拉普拉斯-贝尔特拉米算子,V为对角矩阵,Vj表示四面体j的体积,L为稀疏对称矩阵;i和j分别表示四面体中的两个相邻顶点,ωji表示权重,表示顶点j与顶点i所对边ek的长度,为边ek所处的两个平面之间所形成二面角的角度;步骤1-2,在三维流形中设定给定的起点为s,并以s为单位热源,计算四面体网格经过时刻t之后的热量分布;其中,四面体网格中的热量分布计算过程包括如下步骤1-21和步骤1-22:步骤1-21,设定μ(t,x,y)为热传导方程的解;其中:其中,t为四面体所经过的时间,x和y为四面体网格空间中的两个任意点;k表示所述四面体空间的维度;步骤1-22,计算热量场的梯度,并对所得热量场的梯度进行归一化后,得到归一化热量场梯度,以利用所得到的归一化热量场梯度表示三维流形内部距离场的梯度;步骤1-3,利用LDLT分解法求解泊松方程,以得到三维流形内部的距离场;利用LDLT分解法求解泊松方程过程包括步骤1-31和步骤1-32:步骤1-31,设定所要求解的泊松方程的矩阵形式如下:采用LDLT分解法对泊松方程矩阵进行分解:L=PQΛQTPT;其中,P为置换矩阵,Q为稀疏的下三角矩阵,V为对角矩阵;PT为置换矩阵P的转置矩阵,QT为下三角矩阵Q的转置矩阵;G是热量场的梯度向量场;表示热量场的梯度算子;步骤1-32,将所分解的矩阵代入矩阵形式的泊松方程,以得到三维流形内部的距离场:d表示三维流形内部的距离场;步骤2,构建针对三维流形的能量函数模型;其中,所构建的能量函数模型设定如下:其中,E(y)为能量函数,E(y)恒为正数且有界,ρ(x)为三维流形中点x处的密度,dg(x,y)为三维流形中任意点x与三维流形中任意点y的内部距离;步骤3,采用梯度下降法对所述能量函数进行最小化处理,以得到三维流形相应的梯度函数;其中,三维流形能量函数的梯度函数计算公式如下:其中,ρ(x)为三维流形中的点x处的密度,dg(x,y)为三维流形中任意点x与三维流形中任意点y的内部距离,E(y)为能量函数;步骤4,根据所得三维流形的能量函数的梯度函数,得到三维流形中点x到点y的最短路径;其中,三维流形中点x到点y的最短路径记为d(x,y)min,其方向为该最短路径d(x,y)min的结束方向,长度为1;步骤5,针对三维流形中的点y,随机选取N个不同的初值{yr,r=1,2,…,N本文档来自技高网...
【技术保护点】
一种获取物体几何质心的方法,用于三维流形所形成的物体,其特征在于,包括如下步骤1至步骤6:步骤1,计算三维流形的内部距离;其中,三维流形的内部距离的计算过程包括如下步骤1‑1至步骤1‑3:步骤1‑1,将所述物体对应的三维流形模型离散为多个四面体,以形成四面体网格;其中,所述四面体网格的获取过程包括如下步骤1‑11和步骤1‑12:步骤1‑11,采用TetGen软件对所述物体对应的三维流形模型进行离散化处理,以生成高质量的四面体网格;步骤1‑12,对四面体的梯度算子、散度算子以及拉普拉斯‑贝尔特拉米算子分别进行离散化处理;其中,四面体的梯度算子、散度算子以及拉普拉斯‑贝尔特拉米算子的离散化处理包括如下步骤1‑121至步骤1‑124:步骤1‑121,假定在四面体网格内部的标量函数f线性变化,并设定标量函数f为该四面体网格上的分片线性函数;步骤1‑122,根据四面体网络中每个四面体的分片线性函数,计算所述每个四面体的分片线性函数的梯度算子;其中,四面体h的分片线性函数的梯度算子标记为(▿f)h=13VhΣjSjfjnj;]]>其中,Vh表示四面体h的体积,Sj为四面体h中与该四面体h的顶点j相对的三角形的面积,fj为四面体h的顶点j上的分片线性函数值,nj为四面体h中与该四面体h的顶点j相对的三角形上的单位法向量;步骤1‑123,构建四面体网格内部的分段线性向量场,并设置四面体的顶点处的散度算子;其中,假设所构建的分段线性向量场g以及四面体h的顶点j处的散度算子分别设置如下:g→=(g→1,g→2,...g→m);(▿·g)j=ΣjSj3Vjnj·Vj·gj;]]>其中,m表示四面体网格中的四面体的数目;Vj表示四面体j的体积;步骤1‑124,获取四面体网格中拉普拉斯‑贝尔特拉米算子的离散化数值;其中:Δ=V-1L;(Δf)j=1VjΣiωji(fj-fi);ωji=16(Σklkjicotαkji);]]>其中,Δ表示拉普拉斯‑贝尔特拉米算子,V为对角矩阵,Vj表示四面体j的体积,L为稀疏对称矩阵;i和j分别表示四面体中的两个相邻顶点,ωji表示权重,表示顶点j与顶点i所对边ek的长度,为边ek所处的两个平面之间所形成二面角的角度;步骤1‑2,在三维流形中设定给定的起点为s,并以s为单位热源,计算四面体网格经过时刻t之后的热量分布;其中,四面体网格中的热量分布计算过程包括如下步骤1‑21和步骤1‑22:步骤1‑21,设定μ(t,x,y)为热传导方程的解;其中:μ(t,x,y)=(2π)-k2ed2(x,y)-2t,t→0;∂μ∂t=12Δμ;]]>其中,t为四面体所经过的时间,x和y为四面体网格空间中的两个任意点;k表示所述四面体空间的维度;步骤1‑22,计算热量场的梯度,并对所得热量场的梯度进行归一化后,得到归一化热量场梯度,以利用所得到的归一化热量场梯度表示三维流形内部距离场的梯度;步骤1‑3,利用LDLT分解法求解泊松方程,以得到三维流形内部的距离场;利用LDLT分解法求解泊松方程过程包括步骤1‑31和步骤1‑32:步骤1‑31,设定所要求解的泊松方程的矩阵形式如下:Ld=V(▿·G);]]>采用LDLT分解法对泊松方程矩阵进行分解:L=PQΛQTPT;其中,P为置换矩阵,Q为稀疏的下三角矩阵,V为对角矩阵;PT为置换矩阵P的转置矩阵,QT为下三角矩阵Q的转置矩阵;G是热量场的梯度向量场;表示热量场的梯度算子;步骤1‑32,将所分解的矩阵代入矩阵形式的泊松方程,以得到三维流形内部的距离场:d表示三维流形内部的距离场;步骤2,构建针对三维流形的能量函数模型;其中,所构建的能量函数模型设定如下:E(y)=∫Ωρ(x)dg2(x,y)dσ;]]>其中,E(y)为能量函数,E(y)恒为正数且有界,ρ(x)为三维流形中点x处的密度,dg(x,y)为三维流形中任意点x与三维流形中任意点y的内部距离;步骤3,采用梯度下降法对所述能量函数进行最小化处理,以得到三维流形相应的梯度函数;其中,三维流形能量函数的梯度函数计算公式如下:∂E∂y=2∫Ωρ(x)dg(x,y)∂dg(x,y)∂ydσ;]]>其中,ρ(x)为三维流形中的点x...
【技术特征摘要】
1.一种获取物体几何质心的方法,用于三维流形所形成的物体,其特征在于,包括如下步骤1至步骤6:步骤1,计算三维流形的内部距离;其中,三维流形的内部距离的计算过程包括如下步骤1-1至步骤1-3:步骤1-1,将所述物体对应的三维流形模型离散为多个四面体,以形成四面体网格;其中,所述四面体网格的获取过程包括如下步骤1-11和步骤1-12:步骤1-11,采用TetGen软件对所述物体对应的三维流形模型进行离散化处理,以生成高质量的四面体网格;步骤1-12,对四面体的梯度算子、散度算子以及拉普拉斯-贝尔特拉米算子分别进行离散化处理;其中,四面体的梯度算子、散度算子以及拉普拉斯-贝尔特拉米算子的离散化处理包括如下步骤1-121至步骤1-124:步骤1-121,假定在四面体网格内部的标量函数f线性变化,并设定标量函数f为该四面体网格上的分片线性函数;步骤1-122,根据四面体网络中每个四面体的分片线性函数,计算所述每个四面体的分片线性函数的梯度算子;其中,四面体h的分片线性函数的梯度算子标记为(▿f)h=13VhΣjSjfjnj;]]>其中,Vh表示四面体h的体积,Sj为四面体h中与该四面体h的顶点j相对的三角形的面积,fj为四面体h的顶点j上的分片线性函数值,nj为四面体h中与该四面体h的顶点j相对的三角形上的单位法向量;步骤1-123,构建四面体网格内部的分段线性向量场,并设置四面体的顶点处的散度算子;其中,假设所构建的分段线性向量场g以及四面体h的顶点j处的散度算子分别设置如下:g→=(g→1,g→2,...g→m);(▿·g)j=ΣjSj3Vjnj·Vj·gj;]]>其中,m表示四面体网格中的四面体的数目;Vj表示四面体j的体积;步骤1-124,获取四面体网格中拉普拉斯-贝尔特拉米算子的离散化数值;其中:Δ=V-1L;(Δf)j=1VjΣiωji(fj-fi);ωji=16(Σklkjicotαkji);]]>其中,Δ表示拉普拉斯-贝尔特拉米算子,V为对角矩阵,Vj表示四面体j的体积,L为稀疏对称矩阵;i和j分别表示四面体中的两个相邻顶点,ωji表示权重,表示顶点j与顶点i所对边ek的长度,为边ek所处的两个平面之间所形成二面角的角度;步骤1-2,在三维流形中设定给定的起点为s,并以s...
【专利技术属性】
技术研发人员:陈双敏,陈能仑,刘超,辛士庆,
申请(专利权)人:宁波大学,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。