一种三维图书模型的单侧页面提取方法

文档序号:10535916阅读:287来源:国知局
一种三维图书模型的单侧页面提取方法
【专利摘要】本发明涉及一种三维图书模型的单侧页面提取方法。首先基于点云在X、Y、Z轴三个方向上的坐标极值形成一个与坐标轴平行的最小长方体包围盒,建立基于空间单元格的点云拓扑结构;其次,基于图书模型的几何形状特征求出分割图书左右页面的空面平面方程表达式,将点云的坐标值带入该方程表达式,判断点云的位置,提取图书模型左侧或右侧的点云;接着,基于点云空间坐标x、y的最小值、最大值点以及这四个点周围区域若干点,求出背景平面方程表达式,将点云的坐标值带入方程表达式中进行计算,判断点云的位置,保留平面上方的点云;然后进行书口切分;最后更新并保存新的三维页面模型文件。本发明提出了一种从三维图书模型中进行单侧页面三维模型的自动化提取方法。
【专利说明】
一种三维图书模型的单侧页面提取方法
技术领域
[0001] 本发明属于三维模型处理技术领域,具体涉及一种对从三维扫描仪获得的或从三 维模型文件获得的整个三维图书模型进行处理,获得单侧页面的三维模型的处理方法。
【背景技术】
[0002] 目前,对于扭曲文档图像的光学字符识别(OCR)仍然是一个较难解决的问题,由于 受到文档扭曲的影响,二维图像的文字识别率往往有很大的下降。由于OCR字符识别是通过 对获取的文字图像与标准字库里的文字图像进行对比而进行识别的,其中包括对文档行的 切分、字符的切分,单个字符图像的多个几何特征的计算与对比等多个环节。由于文档图像 的扭曲,二维文档图像中文字行会发生扭曲,文字会发生形变,所以导致OCR字符识别软件 对文档图像的文字行切分时常发生错误,单个字符的切分也时常会发生不准确的情况,并 且,单个文字图像的形变也使得其多个几何特征的计算值,与标准字库里的标准字符图像 的多个几何特征的计算值发生较大偏差,最终出现无法识别,或错误识别的情况。
[0003] 由于三维扫描技术的出现,为扭曲文档图像的字符识别问题提供了一个新的解决 途径。可以首先获得文档图像的三维模型,即获取十几万到几十万,或上百万个点云,及其 每个网格的小图像,然后通过几何信息,计算页面的扭曲系数,对扭曲文档进行三维空间的 虚拟辗平,从而获得比较平直的文档图像,大大提高扭曲文档图像的OCR字符识别率。对于 虚拟辗平的图像实质上等同于平整纸张上的文字图像,因此,文字行整齐,字符变形几乎没 有,字符的多个几何特征值的计算与标准字库中的标准字符图像的几何特征值几乎一致, 因此字符识别率大幅提尚。
[0004] 而对于二维扭曲图像如果想进行空间的校正与恢复,虽然每个像素点具有X、Y轴2 个方向上的坐标,但由于缺乏深度Z轴的信息,所以无法推理计算当扭曲页面被拉平时的像 素点的位置,并且那所能得到的X、Y轴2个方向上的坐标还仅仅是透视成像后在成像平面上 的坐标,这2个值既不等于真实世界里X、Y轴2个方向上的坐标,也不能按照固定比例等于真 实世界里X、Y轴2个方向上的坐标,因此仅仅依靠这2个坐标值,推理计算出的平直纸张上的 各像素点的位置与其真实位置往往偏差很大。所以需要通过三维模型的数据进行推理计 算。
[0005] 对扭曲文档的三维恢复首先需要切分出干净的单个页面的三维模型,然而一般情 况下,从三维扫描仪扫描获得的是对打开的整本图书的三维模型,也就是包括2个页面的三 维模型,并且这种模型还不可避免的包括背景空间、书口等不需要且会为正常的三维扭曲 恢复带来干扰与麻烦的点云与纹理,如果用人工识别,并手工切分出不包含背景点云与书 口点云的单个页面的三维模型,不仅是比较麻烦的,而且也是不易准确控制的。

【发明内容】

[0006] 本发明的目的是对于从三维扫描仪或从三维文件中获得的三维图书模型,提出了 一种进行单页面三维模型的自动化提取方法。该方法包括点云拓扑结构的生成、页面的划 分、背景的剔除、书口的切除以及新三维模型文件的生成等环节。
[0007] 具体来说,本发明采用如下技术方案:
[0008] 一种三维图书模型的单侧页面提取方法,其步骤包括:
[0009] 1)基于图书模型的点云在X、Y、Z轴三个方向上的坐标极值形成一个与坐标轴平行 的最小长方体包围盒,建立基于空间单元格的点云拓扑结构;
[0010] 2)基于图书模型的几何形状特征,求出分割图书左右页面的空面平面方程表达 式,将点云的坐标值带入该方程表达式,判断点云的位置,提取图书模型左侧或右侧的点 云;
[0011] 3)在点云模型中,基于点云空间坐标x、y的最小值、最大值点以及这四个点周围区 域若干点,求出背景平面方程表达式,将点云的坐标值带入该方程表达式中进行计算,判断 点云的位置,保留背景平面上方的点云;
[0012] 4)对步骤3)得到的左侧点云,沿点云右侧边界方向,从右侧边界向左侧边界分成 多条,沿页面左半部分中点云数量最多的一条进行书口切分,保留分界线右侧的点云,得到 图书左页面点云;对步骤3)得到的右侧点云亦可同理对应处理;
[0013] 5)修改平面纹理坐标索引对应的空间顶点坐标索引值,更新并保存新的三维页面 模型文件。
[0014] 本发明的方法可以用于三维扭曲文档的图像恢复,但不仅限于三维扭曲文档的图 像恢复,对于其它需要从完整的三维图书模型中提取单页面的三维模型的应用范围也可适 用。
【附图说明】
[0015] 图1为本发明实施例的完整三维图书模型。
[0016] 图2为本发明实施例的图书点云模型。
[0017]图3为本发明实施例的图书最小长方体包围盒。
[0018]图4为本发明实施例的左右页面的中间分割平面。
[0019 ]图5为本发明实施例的中间分割后的左侧点云。
[0020] 图6为本发明实施例的背景分割平面。
[0021] 图7为本发明实施例的背景分割后的左侧页面点云。
[0022] 图8为本发明实施例的书口切割平面。
[0023]图9为本发明实施例的书口切割后的左侧点云页面。
[0024]图10为本发明实施例的新模型文件的部分v段列表。
[0025]图11为本发明实施例的新模型文件的部分vt段列表。
[0026]图12为本发明实施例的新模型文件的部分f段列表。
[0027]图13为本发明实施例的最终切割后的左侧页面三维模型。
【具体实施方式】
[0028]下面通过实施例和附图,对本发明作详细的说明。
[0029]对于某三维图书模型,如欲提取其左侧三维页面,基于本方法的提取步骤包括: [0030]步骤1:基于点云在X、Y、Z轴三个方向上的坐标极值形成一个与坐标轴平行的最小 长方体包围盒,建立基于空间单元格的点云拓扑结构。具体步骤如下:
[0031] 1-1)从三维扫描仪或三维数据文件读入图书三维模型的相关数据,记面片顶点总 个数为P,面片某顶点P的X、Y、Z轴(Z轴正方向大致为图书正面方向)坐标为 Xp、yp、zp,面片顶 点的索引值为indexvp,其所对应的纹理顶点的U、V轴坐标为u P、vP(U轴为纹理顶点在纹理图 像中的横轴,V轴为纹理顶点在纹理图像中的纵轴),纹理顶点的索引值为index tp,面片q所 对应的面片顶点索引值为{ indexVqi,indexVq2......indexVq r}和纹理顶点索引单元 {indextqi,indextq2......indextqr}。另外针对各顶点p,增加相关删除标识单元f lagP,与索 引调整单元decreaseP<3flagP与decreaseP初值均为0〇
[0032]例如,我们读入一个示例三维文档模型文件example, obj,如图1所示。其面片顶点 总个数P = 105895。其点云模型如图2所示。
[0033]卜2)依次扫描各面片顶点口(办,7[),4),得到面片顶点在乂丄2方向上的最小值、最 大值。设三个方向上最小坐标值为:minx、miny和minz,最大坐标值为:max x、maxy和maxz。根据 这三个方向的极值,依式(1)计算子长方体的宽度与长度subsize:

[0035]例如,对于本示例模型,其面片顶点在X、Y、Z方向上的最小值、最大值为: /?/>;, - -230.78120422363281 maxx = 245.718811035 i 5625 min =-191.24124145507812 ,式(1)的计算结果为:subSize = 5? 5081213577693333。 max} =180.75875854492187 min= = -56.897708892822266 max - 42.936664581298828
[0036] 1-3)根据111;[1^、111;[%、111;[112、11^\、11^丫和11^2,对点云形成一个与坐标轴平行的最小 长方体包围盒。并根据子长方体长度与宽度值subsih,将长方体包围盒按X、Y、Z三个坐标 方向划分出L*M*1个子长方体。L、M依式(2)给出:
C)
[0038] 其中,int为取整函数。
[0039] 例如,对于本示例模型,最小长方体包围盒,如图3所示,其式(2)的计算结果为: (l =m - 68
[0040] 1-4)对于每个子长方体,建立一组数据单元,分别存储位于此子长方体内的各顶 点的索引值indexvp。对于三维坐标值为(xP,yP,zP)的点p,则其所在子长方体在X、Y两个坐标 方向上的索引值(l,m)依式(3)计算: (3) L0042J 步骤2:基于图书模型的几何形状特征,求出分割图书左右页面的空面平面方程表 达式,将点云的坐标值带入该方程表达式,判断点云的位置,提取图书模型左侧或右侧的点 云。具体步骤如下:
[0043] 2-1)依式(4)计算Y轴的中心单元格索引号
(4)
[0045]例如,对于本示例模型,其Y轴的中心单元格索引号的计算结果为:mcenter = 34。
[0046] 2-2)依式(5)计算Y轴的中心坐标近似位置:
[0047] ycenter=miny+mcenter*subsize (5)
[0048] 例如,对于本示例模型,其Y轴的中心坐标近似位置的计算结果为:ycente:r = -3.9651152909207781。
[0049] 2-3)对子长方体{ (0,mcenter),( 1,mcenter),......, (c ,mcenter) ,......, (L~l , mcenter) },分另lli十算子长方体内各面片顶点的Z轴坐标均值{zaveo,zavei,......, zavec,......,zaveL-i},并记最大均值所在子长方体的X轴索引值为maxi。若
转步骤2-4);否则若
,则转步骤2-5)。
[0050] 例如,对于本示例模型,其最大均值所在子长方体的X轴索引值的搜索结果为: maxi = 36
,转步骤 2-4)。
[0051] 2-4)依次扫描{zavemaxi,zavemaxi+i,......,zaveci,......,zaveL-2},并依式(6)依 次计算Z轴坐标均值的差分:
[0052] deltaci = zaveci_zaveci+i (6)
[0053] 得到第一个小于0的差分值deltad)(deltac()<0),并记zavecc = zavec〇〇
[0054] 例如,对于本示例模型,其取得第一个小于0的差分值时:cO = 44,并赋值:zavec。 = -1.8424575415750344
[0055] 2-5)依次扫描 zavemaxi,zavemaxi-1,......, zavecr,......, zavei,并依式(7)依次 计算Z轴坐标均值的差分:
[0056] delt&cr - ZclVGcr_ZclVGcr-1 (7 )
[0057] 得到第一个小于0的差分值deltad)(deltac()<0),并记zavecc = zavec〇〇
[0058] 2-6)依式(8)构造点 pc:
[0059] (minx+cO^subsize ,miny+mCenter*subsize, zavecc) (8)
[0060] 同理,分别令:
[0062] 带入步骤2-3),2_4)或2-3),2_5),得到2e个新的值对(cC^zavem),e的取值一般可 为[1,5],依式(8)构造出2e个新点(p c-e,......,pc-2,pc-1,pc+1,pc+2,......,pc~he )。
[0063] 例如,对于本示例模型,其取值:e = 2,(pc-2,Pc-1,Pc,pc+i,pc+2)的构造结果为: 'p , = (-4.9482285550901395,-48.030086153075445,-15.508145419034092) p, ; = (6.0680141604485129,-25.997600721998140,-4.5445390560410237)
[0064] ! p. = (11.576135518217853,-3.9651152909207781 ,-l .8424575415750344), p, = (17.084256875987194,18.067370140156527,-0.92686784480299267) p i2 = (28.100499591525875,40,099855571233888,0,59222989777723944)
[0065] 2-7)对(Pc-e,......,Pc-2,Pc-l,Pc,Pc+l,Pc+2,......, Pc + e )依式(9 )计算中心点 pCGIltGr ( Xpcenter , Ypcenter , Zpcenter ):
(9) 123 并依式(10)计算矢量爾; 2 lwr =yt+e-yc_e 衝 3 例如,对于本示例模型,其pcenter( Xpcenter,ypcenter,Zpcenter)的计算结果为: pccniei\ = 11.576135518217859 ^ pcenler. =-3.9651152909207896 其矢量 W,"'_)的计算结果为: pccntcr = -4.4459559927351808 u'(33.048728146616,88.129941724309,16.100375316811)
[0070] 2-8)取空间坐标X的值为minx与maxx,以及空间坐标Y的值为min y与maxy的点,以及 这四个点所在子长方体区域的其它各点,构成共I个点的点集{ (xo,yo,zo),(xi,yi, zi),......, (xi,yi,zi),......(xi-i,yi-i,zi-i)},其中包括空间坐标X的值为minx与max x,以 及空间坐标Y的值为miny与maxy的4个点,(xi,yi,zi)是所选点点集中顶点i的X、Y、Z轴位置坐 标。依式(11)计算背景平面的法向量石:
(11)
[0072] 其中next (hi)是顶点hi的下一个顶点的序号,依式(12)计算:
[0073] next(hi)=(hi+1)mod I (12)
[0074] 其中,mod为取余运算函数。
[0075] 例如,对于本示例模型,其矢量&化4>)的计算结果为: /?(〇.()136384 15092768820,-0.16768291769844404,0.98574663719735511)
[0076] 2-9)依式(13)叉积计算分割平面的法矢4 )
[0077] b = wxh (13)
[0078] 例如,对于本示例模型,其矢量A )为: -8,089522258 丨丨40676,-丨.(.,859 丨49722962301)。
[0079] 2-10)依式(14)计算分割平面指向X轴正向的法向量 b\. =-- //, > 0 b\=h'. bx>0 b' =h lK > 〇
[0080] ; ; . (14) h、=--h、 /' < 0 b\.=-hv b <0 h' =-h Ik <〇
[0081] 例如,对于本示例模型,其矢量石'的计算结果为: h '(22.393387900074934, -8.0895222581140676, -1.6859149722962301)
[0082] 2-11)对各面片顶点口(11),71),21)),依式(15)计算各面片顶点口(1 1),71),21))对于分割 平面相对位置的特征值gcp:
[0083] gcp = b,x(xp-pcenterx)+b,y(yp-pcentery)+b ,z(zp-pcenterz) (15)
[0084]若欲提取左侧页面,依式(16)更新f lagP: = I gn, > 〇 …、
[0085] ^ (16)
[0086]若欲提取右侧页面,依式(17)更新f lagP: f麵,=i g,P < 〇 . ,,、 C 〇〇87] 1^ =fim:P 疋,。 (
[0088] 例如,对于本示例模型,其分割左右页面的平面如图4所示,分割后左部页面点云 如图5所示。
[0089] 步骤3:在点云模型中,基于点云空间坐标x、y的最小值、最大值点以及这四个点周 围区域若干点,求出背景平面方程表达式,将点云的坐标值带入方程表达式中进行计算,判 断点云的位置,保留平面上方的点云。具体步骤如下:
[0090] 3-1)取空间坐标X的值为minx与maxx,以及空间坐标Y的值为min y与maxy的点,以及 这四个点所在子长方体区域的其它各点,构成共1个点的点集((1〇,7〇,2()),(11,71, zi),......, (xi,yi,zi),......(xi-i,yi-i,zi-i)),其中包括空间坐标X的值为minx与max x,以 及空间坐标Y的值为miny与maxy的4个点,(xi,yi,zi)是所选点点集中顶点i的X、Y、Z轴位置坐 标。对所选点集,依式(18)计算所选点的平均坐标a (ax,ay,az):
(18) 12 3-2)依式(19)计算背景平面指向Z轴正向的法向量/〗'(/2 '、, A ', A : h'、,h' h >0 h\.=hy ht > 0 h'_=k h >0 2 ^ . (19) h\ =-hx h <0 h'r --kv: h < 0 //' ~-hs h < 0
[0094]例如,对于本示例模型,其矢量的计算结果为: h'(0.013638415092768820, -0.16768291769844404,0.9857466371973551 I)
[0095] 3-3)对各面片顶点口(11),71),21)),依式(20)计算面片顶点口(1 1),71),21))对于背景平面 相对位置的特征值gbP:
[0096] gbP = h,x(xP-ax)+h,y(yP-ay)+h,z(z P-az) (20)
[0097] 并依式(21)更新 flagP: r n \flagP=^ 8bp < 〇 州、
[0098] W-flagp gbl>, (21)
[0099] 例如,对于本示例模型,其左部页面的背景平面如图6所示,提取的背景平面上方 的点云如图7所示。
[0100] 步骤4:对步骤3)得到的左侧点云,沿点云右侧边界方向,从右侧边界向左侧边界 分成多条,沿页面左半部分中点云数量最多的一条进行书口切分,保留分界线右侧的点云, 得到图书左页面点云。可对步骤3)得到的右侧点云亦可同理对应处理。具体步骤如下:
[0101] 对步骤3)得到的左侧页面,沿点云右侧边界方向,从右侧边界向左侧边界分成D (0,1,......d,......2D-1)条(第0条在最右边,第2D-1条在最左边),沿页面左半部分中点 云数量最多的一条maxd进行书口切分,保留切分线右侧的点云,得到图书左页面点云。对步 骤3)得到的右侧页面,沿点云左侧边界向右方向,从左侧边界向右侧边界分成D(0, 1,......d,......2D-1)条(第0条在最左边,第2D-1条在最右边),沿页面右半部分中点云 数量最多的一条maxd进行切分,保留切分线左侧的点云,得到图书右页面点云。D的取值范 围一般可为[15,25 ]。所述步骤4的具体步骤为:
[0102] 4-1)对于步骤3)得到的页面,记flagp = 0的面片顶点的X轴最小值为min'x,flagP =0的面片顶点的X轴最大值为max'x,依式(22)计算每条在X轴方向上的步长step:
(22)
[0104]例如,对于本示例模型,取D = 20,每条在X轴方向上的步长step的计算结果为: step = 5.5455702781677250。
[0105] 4-2)对(D,D+1,......d,......2D-1)各条,依式(23)赋条中有效点的个数numd初 值为〇:
[0106] numa = 0 (23)
[0107] 4-3)对(D,D+1,......d,......2D-1)各条,计算落在每条d中有效点的个数numd。 具体方法为:扫描各面片顶点P(xP,yP,zP),对于步骤3)得到的左侧页面,依式(24)计算面片 顶点P ( Xp,yp,Zp )对于当前条d相对位置的特征值gnpdr与gnpdl:
[0108] \ ^ h (r/, - pcentei: + step * d) + b(v,, - pccmer,. ) + h' (z" - pcenier ) < (24)
[^ ^(-v" _ pcentei\ + step*(d + l)) + b\ (v.; - pcentei\.) + b' (z" - pcenter )
[0109] 并依式(25)更新numd:
[0110] \numd =.num.d.+l {flag,, - 0) a {giiiUli < 0) a > 0) ⑵) =舰% (//%, = i) v ((/7og^ 0)八(g_. > 0)) v = 0)八(g啊 S 0))
[0111]这里"八"为"并且"关系,"V"为"或"关系。
[0112] 对于步骤3)得到的右侧页面,依式(26)计算面片顶点p(xP,yP,zP)对于当前条d相 对位置的特征值gnpdi?与gnpdl:
[0113] f A?a = * (d + I(二 " - /, < (26) =^\(x" ~ - step* il) + b' r(y 〇 - pcc liter ) + h' (zp - pcentcr )
[0114] 并依式(27)更新numd:
[0115]
[irnm, = num, +1 (flag,, = 0) a(g , > 0) a(g, < 0) i ... (27) \ num:l = man, = 1 卜((,"喂"=0)八(&"", < 0)W (咖^^
[0116] 4-4)对(0,1,......d,......D-l)各条,扫描各numd,取numd的最大值的条号为 maxd。对于步骤3)得到的左侧页面,对各面片顶点?(^,7[),21)),依式(28)计算面片顶点口 (xP,yP,zP)对于书口分害J平面相对位置的特征值gep:
[0117] gep = b,x( xp_pcenterx+step 氺 maxd) +b,y (yp_pcentery) +b,z (zp_pcenterz) (28)
[0118] 并依式(29)更新 flagP:
[flagp ^ flag,, gep >0 ~、
[0119] (29)
[0120]对于步骤3)得到的右侧页面,对各面片顶点?(知,^,^),依式(30)计算面片顶点口 (xP,yP,zP)对于书口分害J平面相对位置的特征值gep:
[0121 ] gep = b,x(xp-pcenterx-step>!<maxd)+b ,y(yp-pcentery)+b,z(zp-pcenterz) (30)
[0122] 并依式(31)更新 flagP:
[0132] 5-3)依次扫描由组成面片的面片顶点索引indexv与纹理顶点索引indext所构成的 各面片。
[0133] 对于面片q,其所对应的面片顶点索引值为{indexVqi,indexVq2......index Vqr},纹 理顶点索引为{indextqi,indextq2......indextqr},若索引值{indexVqi, indexvq2......indexVqr}所对应的面片顶点中,存在某顶点p(x P,yP,zP),其flagP = l,则面 片q的所对应的面片顶点索引值{indexVqi,indexVq2......index Vqr}和纹理顶点索引值 {indextqi,indextq2......indextqr}不再存入模型文件的面列表,即f段列表。
[0134] 否则,对于面片q,其所对应的面片顶点索引值为{ i n d e x v q i, indexvq2......indexVqr},纹理顶点索引为{indextqi,indext q2......indextqr},若索引值 {indexvqi,indexvq2......indexVqr}所对应的面片顶点中,所有顶点p(x P,yP,zP),均有flagP =〇,则依式(33)计算面片q的所对应的面片顶点新索引值: 'index- indexvq. -decrease:^ index'yi.: -inclexyii2 -decrease^
[0135] < .*..:? (33) index'vqr =indexm -decreme^^
[0136]并将面片q其所对应的面片新顶点索引{index'Vqi,index'Vq2......index' Vqr}、纹 理顶点索引{indextqi, indextq2......indextqr},均存入模型文件的面列表,即f段列表。
[0137] 例如,对于本示例模型,最终得到的部分f段列表如图12所示。最终得到的附着纹 理的提取页面如图13所示。
[0138] 各种三维模型文件格式虽有不同,但基本原理如上,具体模型文件存储时,可据具 体文件实际格式进行调整。
[0139] 上述实施例仅用以说明本发明的技术原理,并不用以限制本发明。本领域的技术 人员可以对本发明的技术方案做同等变化与修改,本发明的保护范围应以权利要求书的限 定为准。
【主权项】
1. 一种三维图书模型的单侧页面提取方法,其特征在于,包括以下步骤: 1) 基于图书模型的点云在Χ、γ、ζ轴三个方向上的坐标极值,形成一个与坐标轴平行的 最小长方体包围盒,建立基于空间单元格的点云拓扑结构; 2) 基于图书模型的几何形状特征,求出分割图书左右页面的空面平面方程表达式,将 点云的坐标值带入该方程表达式,判断点云的位置,提取图书模型左侧或右侧的点云; 3) 在点云模型中,基于点云空间坐标x、y的最小值、最大值点以及这四个点周围区域若 干点,求出背景平面方程表达式,将点云的坐标值带入该方程表达式中进行计算,判断点云 的位置,保留背景平面上方的点云; 4) 对步骤3)得到的左侧点云,沿点云右侧边界方向,从右侧边界向左侧边界分成多条, 沿页面左半部分中点云数量最多的一条进行书口切分,保留分界线右侧的点云,得到图书 左页面点云;对步骤3)得到的右侧点云亦同理对应处理; 5) 修改图书模型的平面纹理坐标索引对应的空间顶点坐标索引值,更新并保存新的三 维页面模型文件。2. 如权利要求1所述的方法,其特征在于,所述步骤1)的具体步骤为: 1-1)从三维扫描仪或三维数据文件读入图书三维模型的相关数据,记面片顶点总个数 为P,面片某顶点P的X、Y、Z轴(Z轴正方向大致为图书正面方向)坐标为xP、yP、z P,面片顶点的 索引值为indexvp,其所对应的纹理顶点的U、V轴坐标为Up、V p,纹理顶点的索引值为indextp, 面片q所对应的面片顶点索引值为UndexVqi,indexVq2......index Vqr}和纹理顶点索引单元 {indextqi,indextq2......indextqr};另外针对各顶点p,增加相关删除标识单元f Iagp,与索 引调整单元decreaseP; flagp与decreaseP初值均为O; 1-2)依次扫描各面片顶点?(&,7[),^),得到面片顶点在乂、¥、2方向上的最小值、最大 值;设三个方向上最小坐标值为:minx、miny和minz,最大坐标值为:max x、maxy和maxz;根据这 三个方向的极值,依式(1)计算子长方体的宽度与长度subsize:⑴ 1-3)根据111;[1^、1]1;[%、1]1;[112、111&1\、111&1\和111&1 2,对点云形成一个与坐标轴平行的最小长方 体包围盒;并根据子立方体长度subs i z e,将长方体包围盒按X、Y、Z三个坐标方向划分出L* M*1个子长方体;L、M依式(2)给出:(2) 其中,int为取整函数; 1-4)对于每个子长方体,建立一组数据单元,分别存储位于此子长方体内的各顶点的 索引值indexvp;对于三维坐标值为(Xp,yP,Zp)的点p,则其所在子长方体在X、Y两个坐标方向 上的索引值(l,m)依式(3)计算: Γ3}..3.如权利要求2所述的方法,其特征在于,所述步骤2)的具体步骤为: 2-1)依式(4)计算Y轴的中心单元格索引号(4) 2-2)依式(5)计算Y轴的中心坐标近似位置: Ycenter - ΓΠ illy't'nicenter 5^Sllbs ? Ζθ ( 5 ) 2_3 )对 了. Ix 力.体{( O,Hlcenter ),( I,Hlcenter ),......, ( C , Hlcenter ) ,......, (L-l ,IIlcenter) } j 分别计算子立方体内各面片顶点的Z轴坐标均值{zaveo,zavei,......,zavec,......, zavei-i},并记最大均值所在子长方体的X轴索引值为maxi;若ma.iV/5:-转步骤2-4);否 贝IJ若·X-/ > ,则转步骤2-5); 2-4)依次扫描{zavemaxi,zavemaxi+i,......,zaveci,......,zaveL-2},并依式(6)依次计 算Z轴坐标均值的差分: deltaci = zaveci_zaveci+i (6) 得到第一个小于〇的差分值如1七3。()((161七3。()<0),并记23¥6^ = 23¥6。〇; 2-5)依次扫描ZavemaxI,ZavemaxI-I,......,zaveGr,......,zavei,并依式(7)依次计算 Z 轴坐标均值的差分: delt&cr-ZSVGcr-ZSVGcr-I ( 7 ) 得到第一个小于〇的差分值如1七3。()((161七3。()<0),并记23¥6^ = 23¥6。〇; 2-6)依式(8)构造点pc: (minx+cO*subsize,miny+m center*subsize ,ZBVGcc ) (8) 同理,分别令:带入步骤2-3),2-4)或2-3),2-5),得到2e个新的值对(cO,zavecc),依式(8)构造出2e个 新点(Pc-e,......, Pc-2 , Pc-I , Pc+1 , Pc+2 ,......, Pc+e); 2-7)对(pc-e,......, Pc-2, Pc-1, Pc Pc+1, Pc+2,......,Pc+e)依式(9)计算中心点pcenter (Xpcenter , ypcenter , Zpcenter):(9) 并依式(10)计算矢量,W,.,wj :(!0} 2-8)取空间坐标X的值为minx与maxx,以及空间坐标Y的值为miny与maxy的点,以及这四 个点所在子长方体区域的其它各点,构成共I个点的点集{(XQ,yQ,ZQ),( Xi,yI,z 1),......, (xi,yi,zi),......(XI-i,yi-ι,ζι-1)},其中包括空间坐标X的值为minx与max x,以及空间坐标Y 的值为miny与maxy的4个点,(Xi,yi,zi)是所选点点集中顶点i的X、Y、Z轴位置坐标;依式(11) 计算背景平面的法向量A ): (II) 其中next (hi)是顶点hi的下一个顶点的序号,依式(12)计算: next(hi) = (hi+1)modI (12) 其中,mod为取余运算函数; 2-9)依式(13)叉积计算分害U平面的法矢量(13) 2-10)依式(14)计算分害评面指向X轴正向的法向量:(14) 2- 11)对各面片顶点ρ(Xp ,yP, Zp),依式(15)计算各表片面点ρ(Xp ,yP, Zp)对于分割平面 相对位置的特征值gcp:4.如权利要求3所述的方法,其特征在于,所述步骤3)的具体步骤为: 3- 1)取空间坐标X的值为minx与maxx,以及空间坐标Y的值为miny与maxy的点,以及这四 个点所在子立方体区域的其它各点,构成共I个点的点集((XQ,yQ,ZQ),( Xi,yI,z 1),......, (xi,yi,zi),......(XI-i,yi-ι,ζι-1)),其中包括空间坐标X的值为minx与max x,以及空间坐标Y 的值为Hiiny与maxy的4个点,(Xi,yi,zi)是所选点点集中顶点i的X、Y、Z轴位置坐标;对所选点 集,依式(18)计算所选点的平均坐标3(3\,3\,32): (18) 3-2)依式(19)计算背景平面指向Z轴正向的法向量"/广.,//,,/〇:(19) 3- 3)对各面片顶点口(11),71),21)),依式(20)计算表片面点口(1 1),71),21))对于背景平面相对 位置的特征值gbP:(20) 并依式(21)更新f Iagp:(21),5.如权利要求4所述的方法,其特征在于,所述步骤4)的具体方法为:对步骤3)得到的 左侧页面,沿点云右侧边界方向,从右侧边界向左侧边界分成D(0,1,......d,......2D-1) 条,其中第〇条在最右边,第2D-1条在最左边;沿页面左半部分中点云数量最多的一条maxd 进行书口切分,保留切分线右侧的点云,得到图书左页面点云;对步骤3)得到的右侧页面, 沿点云左侧边界方向,从左侧边界向右侧边界分成D(0,1,......d,......2D-1)条,其中第 〇条在最左边,第2D-1条在最右边;沿页面右半部分中点云数量最多的一条maxd进行切分, 保留切分线左侧的点云,得到图书右页面点云;所述步骤4)的具体步骤为: 4- 1)对于步骤3)得到的页面,记f Iagp = O的面片顶点的X轴最小值为min'x,f Iagp = O的 面片顶点的X轴最大值为max'x,依式(22)计算每条在X轴方向上的步长step:(22) 4-2)对(D,D+1,......d,......2D-1)各条,依式(23)赋条中有效点的个数numd初值为 numa = 0 (23) 4-3)对(D,D+1,......d,......2D-1)各条,计算落在每条d中有效点的个数numd;具体 0: 方法为:扫描各面片顶点P(xP,yP,zP),对于步骤3)得到的左侧页面,依式(24)计算表片面点 P ( Xp,yP,Zp )对于当前条d相对位置的特征值gnpdr与gnpdl: C4- 4)对(0,1,......d,......D-1)各条,扫描各numd,取numd的最大值的条号为maxd;对 于步骤3)得到的左侧页面,对各面片顶点?(知,%,2[〇,依式(28)计算表片面点?(知,%,2[)) 对于书口分割平面相对位置的特征值gep: gep = b,x(xp-pcenterx+step*maxd)+b,y(y p-pcentery)+b,z(zp_pcenter z) (28) 并依式(29)审新f Iaen:(2Q) 对于步骤3)得到的右侧页面,对各面片顶点?(知,%,2[)),依式(30)计算表片面点?(知, yP,zP)对于书口分害U平面相对位置的特征值gep: gep = b,x(xp-pcenterx-step*maxd)+b,y(y p-pcentery)+b,z(zp_pcenter z) (30)并依式(31)更新flagn: (31)〇6.如权利安求b所还的力&,兵狩?止仕t,所还步滅5)的具体步骤为: 5- 1)按面片顶点索引值indeXvpW小到大的顺序依次扫描各面片顶点p(Xp,yP,z P),S flagP = l,则不再将其前三维坐标值(xP,yP,zP)存入模型文件的顶点列表,即V段列表;若 f Iagp = 0,则将其前三维坐标值(Xp,yp,zp)存入模型文件的顶点列表,统计索引值为{1, 2 ,......j......, indexvp-l}的面片顶点中flagp= 1的个数s,并依式(32)计算 deer erne-、' 为索引值为indeXvp的面片顶点的索引调整单元值; (32) 5-2)按纹理顶点索引值为indextPW小到大的顺序依次扫描各纹理顶点p(uP,v P),并将 二维坐标值(Up,vP)存入模型文件的纹理图像坐标列表,即Vt段列表; 5-3)依次扫描由组成面片的面片顶点索引indexv与纹理顶点索引indext所构成的各面 片; 对于面片q,其所对应的面片顶点索引值为{indexVqi,indexVq2......index Vqr},纹理顶 点索引 为{indextqi,indextq2......indextqr},若索弓丨值{indexVqi,index Vq2......indexvqr} 所对应的面片顶点中,存在某顶点?(&,^,2[〇,其£1&&=1,则面片(1的所对应的面片顶点 索引值{indexVqi,indexVq2......indexVq r}和纹理顶点索引值{indextqi, indextq2......indextqr}不再存入模型文件的面列表,即f段列表; 否则,对于面片q,其所对应的面片顶点索引值为UndexVqi,indexVq2......index vqr}, 纹理顶点索引为{indextqi,indextq2......indextqr},若索引值{indexVqi, indexvq2......indexVqr}所对应的面片顶点中,所有顶点p(x P,yP, zP),均有f Iagp = O,则依 式(33)计算面片q的所对应的面片顶点新索引值:(33) 并将面片q其所对应的面片新顶点索引{index'Vqi,index'Vq2......index' νν}、纹理顶 点索引{indextqi, indextq2......indextqr},均存入模型文件的面列表,即f段列表。
【文档编号】G06T19/20GK105894586SQ201610187058
【公开日】2016年8月24日
【申请日】2016年3月29日
【发明人】童立靖, 李斌
【申请人】北方工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1