一种基于草图的三维模型检索视点选择方法

文档序号:9489499阅读:279来源:国知局
一种基于草图的三维模型检索视点选择方法
【技术领域】
[0001] 本发明涉及一种算机图像处理领域中的基于草图的三维模型检索技术,特别涉及一种基于草图的三维模型检索视点选择方法,主要应用于基于草图的三维模型检索中的视 点选择。
【背景技术】
[0002] 目前,在基于草图的三维模型检索视点选择领域,视点选择的策略主要有两个方 法。一个是以预设定的固定视点作为所有模型的通用视点。Shao等人在《通过健壮的模型 匹配进行有区别的基于草图的三维模型检索》中提出:基于7个固定视点来对三维模型进 行匹配的方法。这种方法的优点明显,无论这是一个球模型,还是一个人模型,都会用预定 义好的视点来进行匹配,在匹配的过程中,可以减少在视点选择方面的的计算量,有助于提 高系统的运行效率。但其缺点也很明显,忽略了不同模型对视点数量和视点位置的不同需 求,不是每一个视点都能很好地反映模型特征,固定视点会在一定程度上影响匹配结果。
[0003] 而另一个视点选择策略则是,通过视点聚类生成的视点来进行草图的匹配。目前 基于该策略的研究工作很少。

【发明内容】

[0004] 本发明的目的在于克服现有技术的缺点与不足,提供一种基于草图的三维模型检 索视点选择方法,该三维模型检索视点选择方法解决了预设定固定视点对匹配结果造成影 响的问题,使用聚类视点的方法来进行视点的选择。
[0005] 本发明的目的通过下述技术方案实现:一种基于草图的三维模型检索视点选择方 法,包括以下步骤:
[0006] 步骤1、人工对数据库中的模型进行分类;
[0007] 步骤2、通过对正二十面体进行三角细分来确定视点的全集;
[0008] 步骤3、计算每个模型在每个视点的熵值;
[0009] 步骤4、由步骤3的计算结果来确定每一类模型的视点数量;
[0010] 步骤5、由步骤4的计算结果对视点全集进行聚类操作,确定所选择视点;
[0011] 步骤6、根据步骤5生成的视点来生成二维投影视图。
[0012] 本发明相对于现有技术具有如下的优点及效果:
[0013] 1、本发明通过将模型数据库中的模型进行分类,然后通过计算每一类模型中每一 个模型的复杂度来确定视点数量,最后通过聚类的方法来确定最终选择的视点。本发明根 据不同模型对视点数量和视点位置的不同需求,使每一个视点都能很好地反映模型特征, 从而固定了视点,匹配结果良好,有效提高了系统的运行效率。
[0014] 2、在现有的三维模型检索领域视点选择部分,基本上没有对基于聚类视点的视点 选择的研究,本发明采用基于聚类视点的视点选择方法,填补了这方面技术空白。
【附图说明】
[0015] 图1是本发明的流程图。
[0016] 图2是本发明的Loop细分算法分析图。
【具体实施方式】
[0017] 下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限 于此。
[0018] 实施例
[0019] 如图1所示,一种基于草图的三维模型检索视点选择方法,包括以下步骤:
[0020]步骤1、人工对数据库中的模型进行分类;
[0021] 步骤2、通过对正二十面体进行三角细分来确定视点的全集。
[0022] 步骤2具体包括以下步骤:
[0023] 步骤2-1、以三维直角坐标系的原点为正二十面体的外接球的球心,半径为2绘制 一个正二十面体;
[0024] 步骤2-2、通过将1个三角形面分裂成4个小的三角形面来实现面的细分。
[0025] 根据点生成的不同方式,可以将细分后生成的点划分为两类:
[0026](1)第一类点:由原来的三角形的边计算得到的点,如图2中的Vq、Vp和Vr点;
[0027] (2)第二类点:由原来的三角形的顶点计算得到的点,如图2中的V、V和V 占.
[0028] 对于以上的第一类点和第二类点这两类点,根据其所属边是否为边界,分为两种 情况计算新生成点的坐标:
[0029] 对于第一类点:
[0030] (1)如果原三角形的边是边界边,则新生成的点的坐标的计算公式为:
[0032] 其中,VpV2分别为边界边的两个顶点。由式(1),可知,
[0034] (2)如果原三角形的边非边界边,则新生成的点的坐标的计算公式为:
[0036] 其中,V2、V3是该非边界边的两个顶点,¥1、1是与这两个顶点都相交的在该非边界 边两侧且里该边最近的两个顶点。由式(2),可知:
[0038] 对于第二类点:
[0039](1)如果原三角形的边是边界边,则新生成的点的坐标的计算公式为:
[0041] 其中,Vi是原来三角形上对应的顶点,V2、V3分别是原来三角形上VI相邻的两个顶 点。由式(3),可知:
[0043] 如果原三角形的边非边界边,则新生成的点的坐标的计算公式为:
[0048] 步骤3、计算每个模型在每个视点的熵值。步骤3具体包括以下步骤:
[0049] 步骤3-1 :模型X在视点Pj处的熵值的计算公式如下:
[0051] 其中,E表示该模型在该视点处的熵值,m表示该模型的面的数量,~表示第i个 面在该视点下的可视面积,S表示该模型渲染区域的总面积(由于已经将该模型缩放至单 位球内,故可以用单位圆的面积来同等表示S) ;A。表示背景部分的面积,即渲染区域总面积 S减去该模型投影在该面上的总面积,即为A。。E的值越大,表示该模型的复杂度也越大,一 般来说,需要的视点个数也会越多。
[0052]步骤 3-2 :A(x-x〇)+B(y-y〇)+C(z-z。)=0, (9)
[0053]其中,A、B、C分别等于xn、yn、zn,即该平面的法向量的三维坐标,X。,y。,z。表示在 该平面上的某个已知点的坐标,该平面方程即可用于表示投影面的平面方程。
[0054] 对于模型的每一个顶点Vi(Xi,yi,zj,可以计算过该点且法向量与视点法向量相 同的直线方程。由于是正视投影,故顶点与其在投影面映射点的直线的法向量可以视为:视 点Pi(xp,yp,zp)与投景多面的中心P, (x0,y0,z0)构成的法相量,故其空间直线方程可以表示 为:
[0056] 其中,Xpy;、Zi为每一个顶点vi的坐标,m、n、r为直线的法向量,通过求公式(9) 与公式(10)形成的方程组的解,可以得到该顶点在投影面上的映射点 Vl'(Xl',yi',Zl'), 重新生成顶点、面在投影面上的映射f'(v/,v2',v3')。
[0057] 步骤3-3 :只要找到p'所在平面上的一组过p'且相互垂直的基向量ei、e2(以 这两组基向量)即可。对于投影面上的一点q(Xq,yq,zq),计算其在投影面的二维坐标 q'(X/,yq')可以用下面的公式计算:
[0058] PQ=P0+0Q, (12)
[0059] 其中,PQ、P0、0Q分别为p到q,p到〇, 〇到q的向量。
[0060] 艮P:
[0061] xq'*el+yq*e2 =P0+0Q, (13)
[0062] 其中,el为q在该平面上x轴方向的基向量,e2为q在该平面上y轴方向的基向 量。
[0063] 在式(12)中,公式右边都是已知的,ei、e2&可以计算出来。此时该公式可以看成 是关于x/、y/的二元一次方程。可以将等式两边分别点乘epe2,即:
[0064]xq,*el·el+yq*e2 ·el=(P0+0Q)·el,
[0065]xq,*el·e2+yq*e2 ·e2 =(P0+0Q)·e2,
[0066] 其中,el为q在该平面上x轴方向的基向量,e2为q在该平面上y轴方向的基向 量。PQ、0Q分别为p到q,〇到q的向量;
[0067] 由于ei、%互相垂直,故e2 · ei= 0,由此可以分别计算得到X/、yq',即Q在投影 面上以P'为原点的坐标;
[0068] 步骤3-4 :在Matlab中内置了计算两个多边形并集的函数--polybool。其定义 如下:
[0069] [x,y] =function(operation,x1;yux2,y2);
[0070] 其中,x、y为函数的返回值,x为两个多边形(Xl,yi)、(x2、y2)求并集后的多边形 顶点的顺时针序列的χ轴方向坐标,y为其在y轴方向上坐标。operation表示对两个多边 形执行的操作,当输入的operation为'union'时,S卩求两个多边形的并集。
[0071] 步骤4、由步骤3的计算结果来确定每一类模型的视点数量,步骤4具体包括以下 步骤:
[0072] 步骤4-1:首先计算每一个模型所有视点的平均熵值E",然后再计算每一个模型每 一个视点相对于平均熵值E"的标准差Sd。
[0073] 步骤4-2:欧几
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1