CT及MR的定位线功能实现

先说段废话,最近项目进行到了绘制定位线的时候,因为以前没有接触过CT、MR图像所以想当然的用MPR的方式去实现定位线,居然还实现了。不过后来跟临床的人谈了下,发现这种方式是错误的。浪费了很多时间。
教训:不懂的时候要去调研不能自己瞎琢磨。

定位线实现的方式

一、空间中如何定位

定位线即切片在定位图上的交线,在一次检查当中,所有dicom图片及后期MPR处理生成的dicom图都是在一个统一的空间坐标系下的。这个前提才保证了定位线的可计算。

下面来看一个CT、MR图是如何在空间中确定位置的。

这里写图片描述

如上图imagePositionPatient字段表示的是当前图像的左上角在空间中的三维坐标。imageOrientationPatient表示的是当前图像的第一行在空间中的三维方向向量与第一列的三维方向向量。

这两个字段就可以用来确定一个平面了。

还需要三个字段就可以确定一个空间矩形。

这里写图片描述

上面提到的imagePositionPatient字段的单位是毫米,也就是columns*pixelSpacing表示的就是在空间中的矩形宽。

以上就可以完整的确定当前dicom所表示的图像在空间中的准确位置了。

二、计算定位线

首先要设定定位图为Plane1,切片图为Plane2。

1.根据Plane1的两个方向向量计算出Plane1的法向量n(x);

2.根据Plane2的两个方向向量和左上角坐标以及row,columns,pixelSpacing算出Plane2的其他三个角的空间坐标。

3.根据第一步计算出的Plane1的法向量与plane2四个点的的空间坐标计算出四个点与Plane面的矢量位移。这个矢量位移是有正负的。如果点1和点2的矢量位移一正一负则说明点一与点二连城的线段是穿过Plane1的也就是有交点的。

4.有步骤三可以计算出两个交点的三维坐标

5.将两个交点的三维坐标转化为二维坐标。这一步的计算方法是通过Plane1原点(左上角点)到步骤4得到的点一的向量与Plane2的1轴(第一行)的方向向量的夹角的余弦函数,点一在Plane1上的二维坐标X就等于余弦值*(Plane1原点到点一的距离)。

6.第五步即可算出定位线端两端的点的二维坐标。注意单位不是pixel而是毫米。所以绘制的时候要除以Plane1的pixelSpacing.如果有缩放还要乘以缩放的倍数。

三、上图

CT及MR的定位线功能实现_第1张图片

四、参考文章

1.

http://blog.csdn.net/inter_peng/article/details/62046916

2.

http://znzk.scuec.edu.cn/ch/reader/create_pdf.aspx?file_no=20140119&flag=1&journal_id=znmzdxxbzr&year_id=2014

你可能感兴趣的:(DICOM)