1问题的提出
内窥图像生成的过程,是在观测点Osn沿着Ysn的方向进行平行光照射,对光线上经过体素进行渲染,渲染得到的结果图像就是内窥镜图像。本文,不讨论光照模型,只关注坐标的变换。所以,关键点就是求Osn到Ov的转换矩阵,进而计算在Osn中的坐标,映射到在坐标系Ov中的实际体素坐标。
以上的是一个直观的问题描述,在实际渲染算法引擎中,坐标系Osn到坐标Ov之间的变换,是通过一系列的变换的集合,下图就描述了,我们坐标系的定义,其中,比较关键的坐标系是:(坐标系都符合右手螺旋法则)
Ov:原始体素坐标系。坐标方向是Dicom中规定的坐标方向,以图像的左上角为圆心,图像左向右方向是x轴方向,从上到下是y轴方向,z方向是按照右手法则确定,坐标单位是毫米mm。
O:正方体修正坐标系。此坐标系将Ov中最长边作为正方体边长,并且坐标原点和原始Ov的长方体体数据的中心点重合的坐标系。
Ocn:归一化坐标系。归一化是为了后续数值计算方便。将O立方体归一化后,坐标原点和O坐标原点重合。
Osn:内窥镜坐标系。将体素坐标投射到XsnYsn平面上,就是内窥镜的最终的渲染图像。
2 坐标变换
根据上图中的建标方式,可以将坐标的变换分为两步,第一步是,计算Ocn到Osn坐标的变换矩阵,此矩阵可以将Osn中的坐标值转化到Ocn中的坐标值。第二步,Ov到Ocn的变换矩阵,将Ocn中的坐标值转化为Ov坐标值。
2.1 获取Ocn到Osn坐标的转换矩阵
已知内窥镜中,观察点Osn和以及观察方向Ysn,在Ysn方向上任意选择一个点,记做W点
。转换矩阵的推导分为三步,
首先,将Osn移动到和Ocn重合,方向不变W点和T点重合。此时转换矩阵为
然后,向量绕Xcn轴,旋转后(角度的正负,都要遵守右手螺旋法则),T点落到P点,P点的坐标是
。这个过程的旋转矩阵是
最后,向量绕Zcn轴旋转后,点P落到Ycn坐标轴上,至此,整个过程结束。此过程的旋转矩阵是
综上三个步骤的最终的转换矩阵为
通过,空间解析几何,我们知道
带入到矩阵A中,最终的到转换矩阵是
2.2 获取Ov到Ocn坐标的转换矩阵
此过程比较简单,直接写出如下
xLen, yLen, zLen分别代表三个方向上,体数据的大小,单位是mm,L表示三个值中的最大值。
3 实验效果
下图是气道的一个虚拟内窥镜图