置百丈玄冰而崩裂,掷须臾池水而漂摇。

[DICOM]DICOM坐标系[转]

DICOM坐标系

在处理医学图像数据时,通常会首先将数据从像素坐标系转换到患者坐标系,然后再转换到世界坐标系。

这样可以更方便地描述和分析患者的解剖结构,同时也可以方便地与其他设备或系统交互。


世界坐标系

存在一个场景,当我们需要描述其中绝对位置和方向时,约定一个以点O为世界原点,于O点彼此正交的

三个单位轴形成的笛卡尔坐标系为这个空间的世界坐标系。世界坐标系只是无数可能的坐标系之一,但是

我们需要一个坐标系来测量默认情况下的所有事物,所以我们创建了它并给它起了“世界坐标系”

这个特殊名称。


解剖学坐标系

医学影像以患者为主体,因此解剖学坐标系/患者坐标系极其重要

首先我们需要了解医学上的六个指向和三个观察位:


  


六个指向:

Anteriort:前

Posterior:后

Left:左

Right:右

Superior/Head:上/头

Inferior/Feet:下/脚


三个观察位:

冠状位(Coronal):垂直于地面,体前/体后观察人体(A-P),紫色面称为冠状面

矢状位(Sagittal):垂直于地面,体侧观察人体( L-R),粉色面称为矢状面

横断位(Transverse):平行于地面,头顶俯视/足底仰视人体(S-I),绿色面称为横断面或水平面

所谓的解剖坐标系,这是一个相对于特定患者的坐标系,通常用于描述患者身体内部结构的位置和方向。

在患者坐标系中,原点通常被定义为患者身体的某个特定点,

方向通常取上述六个方向其三。如常见的LPS坐标系,RAS坐标系。


像素坐标系

这是一个相对于特定图像的坐标系,通常用于描述图像中像素的位置。在像素坐标系中,原点通常被定义为图像的

左上角,X轴从左到右,Y轴从上到下

参考坐标体系

参考坐标体系即Reference Coordinate System(RCS)。也是后续在坐标转换时候的目标坐标系,

其符合各个对象实例之间的相对空间关系,功能近似于解剖学坐标体系。


坐标转换

在医学图像处理中,我们通常会设定一个世界坐标系来描述物体的绝对位置和方向。

这个世界坐标系通常会选择一个与患者身体结构相关的坐标系,如LPS(左后上)

或RAS(右前上)坐标系,因为这样可以更直观地理解和解释图像数据因此,我们

可以说,在医学图像处理的上下文中,解剖学坐标系(也就是LPS或RAS坐标系)

实际上就是一种世界坐标系。而在DICOM中,被称为参考坐标系(Reference Coordinate System)

的世界坐标系以LPS为标准。


当我们进行坐标系的变换时,所涉及的旋转、缩放、翻转、平移等操作,都称之为仿射变换,

变换使用的矩阵称为仿射矩阵。在DICOM中,我们可以通过以下步骤构建从像素坐标系转到

物理坐标系所要用的仿射矩阵:


1.获取DICOM标签值:我们需要以下三个标签的值:

    1)Image Position (Patient) (0020,0032):

    这个标签包含三个值,分别表示图像平面左上角像素(也就是原点)在物理空间中的x、y、z坐标。

    这些值是相对于患者身体的,通常使用LPS(左后上)坐标系。    

    2)Image Orientation (Patient) (0020,0037):

    这个标签包含六个值,前三个值表示图像行(row)的方向,后三个值表示图像列(column)的方向。

    这些值是相对于患者身体的,通常使用LPS(左后上)坐标系。每个方向都是一个单位向量,

    表示该方向与x、y、z轴的夹角的余弦值。    

    3)Pixel Spacing (0028,0030):

    这个标签包含两个值,第一个值表示行间距(即垂直方向上相邻两像素的物理距离),

    第二个值表示列间距(即水平方向上相邻两像素的物理距离)。这些值通常以毫米为单位。

2.计算行和列向量:我们将Image Orientation (Patient)标签的前三个值和

  后三个值分别乘以Pixel Spacing标签的值,得到行和列向量。

3.计算切片向量:我们计算行和列向量的叉积,得到切片向量。

4.构建仿射矩阵:我们将行向量、列向量和切片向量作为仿射矩阵的前三列,

   将Image Position (Patient)标签的值作为仿射矩阵的最后一列。最后一行是[0, 0, 0, 1]。


以下是最终的矩阵:

row_vector[0] column_vector[0] slice_vector[0] image_position[0]
row_vector[1] column_vector[1] slice_vector[1] image_position[1]
row_vector[2] column_vector[2] slice_vector[2] image_position[2]
1



这个仿射矩阵可以将像素坐标系中的坐标转换到物理坐标系中。例如,如果我们有一个像素坐标P(x, y, z),

我们可以通过将P乘以这个仿射矩阵,得到物理坐标系中的坐标


补充

DICOM相关节点:

Tag 节点说明
Slice Thickness(0018,0050)层厚.
Spacing Between Slices(0018,0088)层与层之间的间距,单位为mm
Image Position (Patient) (0020,0032)

图像位置:

这个标签包含三个值,分别表示图像平面左上角像素(也就是原点)在物理空间中的x、y、z坐标。

    这些值是相对于患者身体的,通常使用LPS(左后上)坐标系。

Image Orientation (Patient) (0020,0037)

图像方位

这个标签包含六个值,前三个值表示图像行(row)的方向,后三个值表示图像列(column)的方向。

    这些值是相对于患者身体的,通常使用LPS(左后上)坐标系。每个方向都是一个单位向量,

Slice Location(0020,1041)实际的相对位置,单位为mm. (部分DICOM可能没有这个节点)
Rows(0028,0010)图像的总行数,行分辨率.
Columns(0028,0011)图像的总列数,列分辨率.
Pixel Spacing(0028,0030)

像素间距.像素中心之间的物理间距.

这个标签包含两个值,第一个值表示行间距(即垂直方向上相邻两像素的物理距离),

    第二个值表示列间距(即水平方向上相邻两像素的物理距离)。这些值通常以毫米为单位

Patient Position(0018,0050)层厚.



参考文档:

https://blog.csdn.net/Kir1hara/article/details/132088944

https://zhuanlan.zhihu.com/p/37230575

发表评论:

验证码