发明名称 一种基于图形变换矩阵的窥镜视角跟踪方法
摘要 本发明为一种图形变换矩阵的窥镜视角跟踪方法,可以在虚拟手术训练系统中显示手术刀的窥镜视角,属于信息技术领域中的计算机图形学领域。提出了一种基于图形变换矩阵的算法,通过改变几个标定点的空间坐标位置,构造一个可以跟随虚拟手术训练系统中的刀具运动而运动的视角,从而达到窥镜视角的效果。本方法使用绝对式变化量,减少了刀具运动过程中采集数据的累积误差,通过初始化时的校准,消除了稳态误差,同时使视角可以和部机械联动,完全还原了真实手术中的相关操作,且运算量较小,抗干扰能力好。
申请公布号 CN103279984A 申请公布日期 2013.09.04
申请号 CN201310220543.X 申请日期 2013.06.04
申请人 浙江工业大学 发明人 刘衍志;白雪琛;冯远静;禹鑫燚;叶峰;陈蒙奇;洪凌;郭冰冰
分类号 G06T17/00(2006.01)I;G06T19/00(2011.01)I 主分类号 G06T17/00(2006.01)I
代理机构 杭州天正专利事务所有限公司 33201 代理人 王兵;黄美娟
主权项 1.一种基于图形变换矩阵的窥镜视角跟踪方法,主要包括以下三个步骤:步骤1,获取数字式手术刀在虚拟空间内空间参数:所述空间参数包括相机位置(Position),相机焦点(Focus Point)以及朝上方向(View Up),相机位置即数字式手术刀上虚拟摄像点所处的位置,模拟真实手术中摄像头所在的位置;相机焦点即视角的焦点位置,主要用来与相机位置共同构成视线向量;朝上方向即视平面的y轴正方向;通过在计算机内建立虚拟空间,并为该虚拟空间设立坐标轴,将数字化手术刀导入该虚拟空间,从而将获取到的虚拟摄像点位置作为相机位置P(P<sub>x</sub>,P<sub>y</sub>,P<sub>z</sub>),以P点沿y轴正方向5个单位的位置上做第二个点F(F<sub>x</sub>,F<sub>y</sub>,F<sub>z</sub>),作为相机焦点,其中<img file="FDA00003297524400016.GIF" wi="74" he="68" />是视线向量,在P点与镜鞘轴线对称的位置上做点V(V<sub>x</sub>,V<sub>y</sub>,V<sub>z</sub>),<img file="FDA00003297524400017.GIF" wi="71" he="63" />是视平面正方向向量;步骤2,根据手术刀模型运动,进行坐标变换:设立了三个4×4图形学变换矩阵R<sub>x</sub>、R<sub>z</sub>、T<sub>y</sub>来进行窥镜视角变化,其中,R<sub>x</sub>是摄像点绕x轴旋转时变换矩阵,R<sub>z</sub>是摄像点绕z轴旋转时的变换矩阵,T<sub>y</sub>是摄像点沿着刀具坐标y轴方向平移的变换矩阵,具体为:<maths num="0001"><![CDATA[<math><mrow><msub><mi>R</mi><mi>x</mi></msub><mo>=</mo><mfenced open='(' close=')'><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mi>cos</mi><mi>&alpha;</mi></mtd><mtd><mi>sin</mi><mi>&alpha;</mi></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mo>-</mo><mi>sin</mi><mi>&alpha;</mi></mtd><mtd><mi>cos</mi><mi>&alpha;</mi></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths><maths num="0002"><![CDATA[<math><mrow><msub><mi>R</mi><mi>z</mi></msub><mo>=</mo><mfenced open='(' close=')'><mtable><mtr><mtd><mi>cos</mi><mi>&beta;</mi></mtd><mtd><mn>0</mn></mtd><mtd><mo>-</mo><mi>sin</mi><mi>&beta;</mi></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mi>sin</mi><mi>&beta;</mi></mtd><mtd><mn>0</mn></mtd><mtd><mi>cos</mi><mi>&beta;</mi></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths><maths num="0003"><![CDATA[<math><mrow><msub><mi>T</mi><mi>y</mi></msub><mo>=</mo><mfenced open='(' close=')'><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mi>T</mi></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths>α表示刀具从初始位置绕x轴旋转过的角度;β表示刀具从初始位置绕z轴旋转过的角度;T表示刀具在刀具坐标y轴方向上相对初始位置的平移;由以上得:<maths num="0004"><![CDATA[<math><mrow><mover><msup><mi>P</mi><mo>&prime;</mo></msup><mo>&RightArrow;</mo></mover><mo>=</mo><mover><mi>P</mi><mo>&RightArrow;</mo></mover><mo>*</mo><msub><mi>T</mi><mi>y</mi></msub><mo>*</mo><msub><mi>R</mi><mi>y</mi></msub><mo>*</mo><msub><mi>R</mi><mi>z</mi></msub><mo>;</mo></mrow></math>]]></maths><maths num="0005"><![CDATA[<math><mrow><mover><msup><mi>F</mi><mo>&prime;</mo></msup><mo>&RightArrow;</mo></mover><mo>=</mo><mover><mi>F</mi><mo>&RightArrow;</mo></mover><mo>*</mo><msub><mi>T</mi><mi>y</mi></msub><mo>*</mo><msub><mi>R</mi><mi>y</mi></msub><mo>*</mo><msub><mi>R</mi><mi>z</mi></msub><mo>;</mo></mrow></math>]]></maths><maths num="0006"><![CDATA[<math><mrow><mover><msup><mi>V</mi><mo>&prime;</mo></msup><mo>&RightArrow;</mo></mover><mo>=</mo><mover><mi>V</mi><mo>&RightArrow;</mo></mover><mo>*</mo><msub><mi>T</mi><mi>y</mi></msub><mo>*</mo><msub><mi>R</mi><mi>y</mi></msub><mo>*</mo><msub><mi>R</mi><mi>z</mi></msub><mo>;</mo></mrow></math>]]></maths>其中,<img file="FDA00003297524400022.GIF" wi="569" he="91" />表示初始的P点坐标,1用于辅助矩阵变换;<img file="FDA00003297524400023.GIF" wi="703" he="88" />表示运动后的P点坐标P′,1用于辅助矩阵变换;<img file="FDA00003297524400024.GIF" wi="595" he="88" />表示初始的F点坐标,1用于辅助矩阵变换;<img file="FDA00003297524400025.GIF" wi="724" he="87" />表示运动后的F点坐标F′,1用于辅助矩阵变换;<img file="FDA00003297524400026.GIF" wi="549" he="94" />表示初始的V点坐标,1用于辅助矩阵变换;<img file="FDA00003297524400027.GIF" wi="410" he="92" /><img file="FDA00003297524400029.GIF" wi="262" he="64" />表示运动后的V点坐标V′,1用于辅助矩阵变换;此时P′表示视角的位置,<img file="FDA000032975244000210.GIF" wi="97" he="62" />构成了视平面法向量,<img file="FDA00003297524400028.GIF" wi="99" he="77" />构成了视平面正方向;步骤3,重绘窥镜视角:将P′、F′、V′分别赋予相机位置,相机焦点以及朝上方向,则系统可根据当前摄像点位置与上一时刻摄像点位置计算出当前视角朝向,重绘由此摄像点观测到的物体,完成窥镜视角显示。
地址 310014 浙江省杭州市下城区潮王路18号