发明名称 一种基于断层图像的面皮三维表面模型重建方法
摘要 本发明公开了一种基于断层图像的面皮三维表面模型重建方法,属于计算机图像图形处理领域。该方法首先基于颅面断层数据重建面皮三维模型;再将该面皮三维模型转换到Frankfurt坐标系下;接着建立面皮三维模型的体素模型;然后以体素模型为输入,基于连通图的广度优先遍历与多视点可见性检测提取面皮三维模型的外表面顶点;最后根据已提取的所有表面顶点以及它们在原模型文件中的拓扑信息,创建面皮三维表面模型。本发明提出了基于断层图像的面皮表面重建的新方法,具有自动化程度高和结果准确度高的优点。
申请公布号 CN102930602A 申请公布日期 2013.02.13
申请号 CN201210403195.5 申请日期 2012.10.20
申请人 西北大学 发明人 耿国华;周明全;贺毅岳;高妮;李康;贺洁琼;杜洪强
分类号 G06T17/20(2006.01)I 主分类号 G06T17/20(2006.01)I
代理机构 西安恒泰知识产权代理事务所 61216 代理人 史玫
主权项 1.一种基于断层图像的面皮三维表面模型重建方法,其特征在于,方法按下述步骤进行:步骤一,对已有的颅面断层数据进行重建,获得面皮三维模型,并按照重建过程中获得网格顶点的先后顺序确定网格顶点的序号;步骤二,将步骤一获得的面皮三维模型转换到Frankfurt坐标系下:(1)建立Frankfurt坐标系;(2)采用三维刚体变换将面皮三维模型转换到Frankfurt坐标系下;步骤三,建立面皮三维模型的体素模型,该体素模型的各表面分别与Frankfurt坐标系的相应坐标轴垂直或者平行,同时在体素模型的建立过程中在每个体素中存储每个体素各自对应的三维空间区域中包含的网格顶点的序号以及每一网格顶点的一阶邻接顶点序号集,使得体素模型包含面皮三维模型网格中顶点的一阶邻接关系;步骤四,建立以Frankfurt坐标系原点为中心的长方体包围盒Box,且该长方体包围盒Box表面与体素模型的表面重合;步骤五,以体素模型为输入,模拟现实世界中自然人眼观察三维物体的过程,利用光的可逆性,结合图的广度优先遍历与多视点可见性检测提取面皮三维模型的外表面顶点:(1)在面皮三维模型外部的正前、正后、正左、正右、正上五个方位分别设定无穷远处虚拟视点,各虚拟视点发出与Frankfurt坐标系中的相应坐标轴平行的光线;(2)建立用于保存广度遍历中当前层包含的面皮三维模型表面顶点集的访问队列Q,并且将该Q的初始值置为空;同时建立用于保存面皮三维模型表面顶点的空链表list;(3)任取面皮三维模型表面上的一个顶点作为广度遍历的初始表面顶点,并将该初始表面顶点同时存入Q和list中;(4)将Q中的所有表面顶点出队,得到顶点集T;(5)利用体素模型包含的顶点一阶邻接关系,获取T的一阶邻接顶点集合K;(6)去除K中已被进行过多视点可见性检测的顶点,然后对K中剩余的每一顶点进行如下的多视点可见性检测:(6.1)设当前待检测顶点为P点,其坐标为(x<sub>p</sub>,y<sub>p</sub>,z<sub>p</sub>),根据检测光线确定规则确定对P点进行可见性检测处理时所需采用的光线,所述检测光线确定规则为:当x<sub>p</sub>≥0时,利用正右方虚拟视点发出的光线对P点进行检测,当x<sub>p</sub><0时,利用正左方虚拟视点发出的光线对P点进行检测;当y<sub>p</sub>≥0时,利用正后方虚拟视点发出的光线对P点进行检测,当y<sub>p</sub><0时,利用正前方虚拟视点发出的光线对P点进行检测;当z<sub>p</sub>≥0时,利用正上方虚拟视点发出的光线对P点进行检测,当z<sub>p</sub><0时,不对P点进行在z轴方向上的可见性检测;(6.2)依次采用由(6.1)确定的光线对P点进行如下可见性检测,设当前检测时采用的光线的方向为dir,其中dir从当前虚拟视点指向Frankfurt坐标系的原点;(6.2.1)以P点为起点,以-dir为方向向量作长方体包围盒Box的相应表面的垂线,垂足为S;根据线段SP与体素模型的垂直相交关系以及体素模型中相邻体素的局部空间邻接关系,求得体素模型中与线段SP相交的顺次相邻的体素集G={V<sub>k</sub>|V<sub>k</sub>是与线段SP直接相交的体素,k=1,2,…,L};计算V<sub>k</sub>的26-邻域体素集R<sub>k</sub>,k=1,2,…,L;取H=G∪R<sub>1</sub>∪R<sub>2</sub>∪…∪R<sub>k</sub>∪…∪R<sub>L</sub>;求取H中所有体素所包含的面皮三维模型顶点的并集S<sub>3</sub>,根据S<sub>3</sub>求出与线段SP进行相交测试的三角面片候选集TriSet,TriSet={tr<sub>q</sub>|tr<sub>q</sub>为三角面片,tr<sub>q</sub>至少包含了S<sub>3</sub>中的一个顶点,q=1,2,…,m};(6.2.2)循环遍历TriSet中的每一个三角面片tr<sub>q</sub>:三角面片tr<sub>q</sub>为ΔA<sub>q</sub>B<sub>q</sub>C<sub>q</sub>,其中,点A<sub>q</sub>的坐标为<img file="FDA00002282916600031.GIF" wi="364" he="82" />点B<sub>q</sub>的坐标为<img file="FDA00002282916600032.GIF" wi="440" he="98" />点C<sub>q</sub>的坐标为<img file="FDA00002282916600033.GIF" wi="434" he="98" />起点为S、方向向量为dir的射线<img file="FDA00002282916600034.GIF" wi="93" he="48" />L(t)=S+t·dir(0≤t&lt;∞)与ΔA<sub>q</sub>B<sub>q</sub>C<sub>q</sub>交于点D<sub>q</sub>,点D<sub>q</sub>关于射线<img file="FDA00002282916600035.GIF" wi="65" he="48" />的参数为t<sub>q</sub>,点D<sub>q</sub>关于ΔA<sub>q</sub>B<sub>q</sub>C<sub>q</sub>的重心坐标为(α<sub>q</sub>,β<sub>q</sub>,1-α<sub>q</sub>-β<sub>q</sub>),根据(式1)计算向量[α<sub>q</sub>,β<sub>q</sub>,t<sub>q</sub>]<sup>T</sup>:<maths num="0001"><![CDATA[<math><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>&alpha;</mi><mi>q</mi></msub></mtd></mtr><mtr><mtd><msub><mi>&beta;</mi><mi>q</mi></msub></mtd></mtr><mtr><mtd><msub><mi>t</mi><mi>q</mi></msub></mtd></mtr></mtable></mfenced><mo>=</mo><msubsup><mi>T</mi><mi>q</mi><mrow><mo>-</mo><mn>1</mn></mrow></msubsup><mo>[</mo><mi>S</mi><mo>-</mo><msub><mi>C</mi><mi>q</mi></msub><mo>]</mo></mrow></math>]]></maths>(式1),其中:<maths num="0002"><![CDATA[<math><mrow><msub><mi>&alpha;</mi><mi>q</mi></msub><mo>=</mo><mfenced open='|' close='|'><mtable><mtr><mtd><mn>1</mn></mtd><mtd><msub><mi>x</mi><msub><mi>D</mi><mi>q</mi></msub></msub></mtd><mtd><msub><mi>y</mi><msub><mi>D</mi><mi>q</mi></msub></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><msub><mi>x</mi><msub><mi>B</mi><mi>q</mi></msub></msub></mtd><mtd><msub><mi>y</mi><msub><mi>B</mi><mi>q</mi></msub></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><msub><mi>x</mi><msub><mi>C</mi><mi>q</mi></msub></msub></mtd><mtd><msub><mi>y</mi><msub><mi>C</mi><mi>q</mi></msub></msub></mtd></mtr></mtable></mfenced><mo>/</mo><mfenced open='|' close='|'><mtable><mtr><mtd><mn>1</mn></mtd><mtd><msub><mi>x</mi><msub><mi>A</mi><mi>q</mi></msub></msub></mtd><mtd><msub><mi>y</mi><msub><mi>A</mi><mi>q</mi></msub></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><msub><mi>x</mi><msub><mi>B</mi><mi>q</mi></msub></msub></mtd><mtd><msub><mi>y</mi><msub><mi>B</mi><mi>q</mi></msub></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><msub><mi>x</mi><msub><mi>C</mi><mi>q</mi></msub></msub></mtd><mtd><msub><mi>y</mi><msub><mi>C</mi><mi>q</mi></msub></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths><maths num="0003"><![CDATA[<math><mrow><msub><mi>&beta;</mi><mi>q</mi></msub><mo>=</mo><mfenced open='|' close='|'><mtable><mtr><mtd><mn>1</mn></mtd><mtd><msub><mi>x</mi><msub><mi>A</mi><mi>q</mi></msub></msub></mtd><mtd><msub><mi>y</mi><msub><mi>A</mi><mi>q</mi></msub></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><msub><mi>x</mi><msub><mi>D</mi><mi>q</mi></msub></msub></mtd><mtd><msub><mi>y</mi><msub><mi>D</mi><mi>q</mi></msub></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><msub><mi>x</mi><msub><mi>C</mi><mi>q</mi></msub></msub></mtd><mtd><msub><mi>y</mi><msub><mi>C</mi><mi>q</mi></msub></msub></mtd></mtr></mtable></mfenced><mo>/</mo><mfenced open='|' close='|'><mtable><mtr><mtd><mn>1</mn></mtd><mtd><msub><mi>x</mi><msub><mi>A</mi><mi>q</mi></msub></msub></mtd><mtd><msub><mi>y</mi><msub><mi>A</mi><mi>q</mi></msub></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><msub><mi>x</mi><msub><mi>B</mi><mi>q</mi></msub></msub></mtd><mtd><msub><mi>y</mi><msub><mi>B</mi><mi>q</mi></msub></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><msub><mi>x</mi><msub><mi>C</mi><mi>q</mi></msub></msub></mtd><mtd><msub><mi>y</mi><msub><mi>C</mi><mi>q</mi></msub></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths>T<sub>q</sub>=[A<sub>q</sub>-C<sub>q</sub> B<sub>q</sub>-C<sub>q</sub>-dir];(6.2.3)当TriSet中至少存在一个三角面片tr<sub>q</sub>与线段SP的交点D<sub>q</sub>的重心坐标满足:0≤α<sub>q</sub>≤1,0≤β<sub>q</sub>≤1,0≤1-α<sub>q</sub>-β<sub>q</sub>≤1且0<t<sub>q</sub><1时,则点P在dir方向上不可见;否则,点P在dir方向可见;(6.3)在对点P进行可见性检测过程中,若点P在所采用的一个或多个光线方向上是可见的,则点P为面皮三维模型的表面顶点;(7)将K中经步骤五中的(6)检测为面皮三维模型的表面顶点的顶点同时添加到Q和list中;(8)当Q非空时,跳至步骤五中的(4)继续执行;当Q为空时,遍历结束,list中保存了面皮三维模型的所有表面顶点,执行步骤六;步骤六,根据list中保存的面皮三维模型的所有表面顶点,以及由步骤一中的面皮三维模型确立的所有表面顶点之间的连接关系,重建面皮三维模型的三维表面模型。
地址 710069 陕西省西安市太白北路229号