【问题标题】:DICOM: relating Slice Location to Image Orientation and Patient PositionDICOM:将切片位置与图像方向和患者位置相关联
【发布时间】:2016-10-19 17:38:10
【问题描述】:

如果图像方向(患者)标签 (0020,0037) 读取 [1,0,0,0,1,0] 并且患者位置标签 (0018, 5100) 读取 'HFS',我如何解释 Slice位置标签(0020,1041),假设它存在? 我知道它表示“以毫米为单位的图像平面的相对位置”,我只是在将范围的端点与 DICOM 参考坐标系 (RCS) 中的 Z 轴相关联时遇到了麻烦。

示例:我有一系列切片位置编号,范围为:[-1873.382, -771.782]

由于数字在增加,并且在 DICOM RCS 中,Z 轴从下到上方向增加,我可以得出结论,'-1873.382' 是最下层切片的位置吗?

另外,请注意,每个切片的图像位置(患者)(0020,0032) 属性的 z 坐标包含与切片位置标记相同的信息。

【问题讨论】:

  • 您还需要图像位置(患者)标签 0020,0032)来订购您的堆栈。
  • @LEADTOOLSSupport 我注意到图像位置(患者)标签的 z 坐标包含与切片位置相同的信息,因此由于它不包含任何新的(相关)信息,所以我没有在我的帖子中没有提到它。但为了澄清起见,我编辑了我的帖子以添加此内容。
  • @kritzel_sw 谢谢 - 我在原始帖子之后阅读了这些链接中的信息,但我仍然有些困惑。我编辑了上面的帖子以添加更多信息。
  • @user762098:看我的回答

标签: dicom


【解决方案1】:

我仍然建议不要使用 Slice Location 属性进行排序。在 MR 成像中,切片可以具有任意方向,甚至在 CT 中,扫描架也可以倾斜,因此您不能相信所有切片都平行于 xy 平面。所以你实际上不知道切片位置指的是哪个轴。

我所做的是从两个切片中减去 ImagePositionPatient,这给了我堆栈中切片移动的方向。可以按差分向量的数量排序。

【讨论】:

  • 这个答案是正确的。您应该减去任何两个 IPP 并归一化以获得矢量 A 但是您应该采用 IOP 的叉积来获得方向。 IOP 有两个向量 (row, col) 和 B = row x col。如果 A、B 之间的角度大于 180,则将 A 反转。A 和 B 之间的角度是 Gantry Tilt,A 是您应该用来对切片位置进行排序的轴。
  • DICOM 将 SliceLocation 称为“名义”值。换句话说,它在任何数学意义上都不可靠。请改用 IPP。
  • 更正:我的意思是说“如果 A 和 B 之间的角度超过 90 度”,顺便说一句。该系列中的所有 IPP 都应该是共线的。如果他们不是那么,那么......你在 la la land。此外,如果到 IPP 之间的距离小于 1e-7(浮动 epsilon),那么您也有点搞砸了。
【解决方案2】:

Image Position (Patient) (0020, 0032) 是图像左上角的 x、y 和 z 坐标,Image Orientation (0020, 0037) 表示第一行和第一列的方向尊重患者(进一步由患者方向定义)。 X轴递增方向为向患者左侧,y轴递增方向为后侧,z轴递增方向为患者头部。

在您的情况下,如果 Z 轴发生变化并且增加朝向头部,我将使用 Z 轴值对堆栈进行排序。它比切片位置更可靠。是的,最小值(例如值 -1873.382)是最劣质的切片。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多