如何计算MPR的dicom切片之间的空间?

时间:2013-02-18 05:46:14

标签: dicom slice

由于显示基于Dicoms的 MPR视图。我从一系列dicom文件中制作了一个3D数组。我从 Coronal Sagittal 两侧展示它。

My 3D array includes: 

 - z = count of dicoms
 - c = column value for every dicoms
 - r = Row value for every dicoms

但我有一个问题。当切片之间存在一些空间时,通过这种方式制作图像不会显示正确的视图。因为我无法想到它们之间的模拟距离!

我不知道如何计算切片之间的空间?我想在切片之间添加额外的空间。例如,如果切片之间的空间为4.我必须添加4个时间z内切片。

我希望能达到我的意思。

3 个答案:

答案 0 :(得分:15)

图像位置(患者)和图像方向(患者)是计算切片之间距离时应使用的两个唯一属性。有关详细信息,请参阅herehere。对于实际实现,请参阅here,此实现也会考虑参考框架UID。

这个问题是关于comp.protocols.dicom的问题#1。

请参阅ImageJ bug


我相信@Matt的答案是错误的,让我在这里澄清一些事情。

  • :'DICOM 具有名为“切片间距”的属性。这是非常错误的(技术上它甚至没有任何意义)。

DICOM定义了IOD,它定义了SOP类实例中可用的必需属性集。让我们考虑两种非常常见的情况:CT图像存储(传统)和MR图像存储(传统)。所以我们需要比较两者之间的属性集:

  1. CT Image IOD Modules
  2. MR Image IOD Modules
  3. 现在假设我们要检查MR Image Storage支持Spacing Between Slices,很容易跳转到:

    然而,为CT Image Storage找到这个属性要困难得多:只是因为这个属性不存在(按标准)。因此,您唯一能够找到此类属性的时间是扩展 SOP类(某些供应商可能会认为片段之间的间距属性在其扩展 SOP类实例中有意义)。

    • 在相同的答案中混合切片间距和切片厚度(0018,0050)对于新用户来说非常混乱。

    我同意切片厚度在CT图像存储和MR图像存储的标准中是完美定义的,因为它们都包含Image Plane Module Attributes,但是不要让它们换另一个。

    我在这里找到了切片厚度与切片之间间距的精彩摘要(如果滚动到该部分,您甚至可以播放小型演示):

    在步骤和拍摄CT中,切片厚度和切片之间的间距是相同的,因此这里没有大问题。然而,对于螺旋CT,这些值不相同,并且可以在任何方向上变化(它们是独立的)。

      

    [...]切片厚度由探测器宽度和间距决定,   而重建间隔(=切片间距)可以选择   随意。 [...]

    总结计算(安全!)切片之间的间距(=重建间隔),使用图像方向(患者)和图像位置(患者)更安全,因为它们可用于MR图像存储或CT图像存储实例。

答案 1 :(得分:14)

DICOM有一个名为Spacing Between Slices(0018,0088)的属性,它给出了两个相邻切片之间的距离(垂直于图像平面),它还有一个称为切片厚度(0018,0050)的属性,它给出了厚度成像切片(图像平面存在于切片的中心,一半体积在平面上方,一半在下面)。图像位置(患者)(0020,0032)和图像方向(患者)(0020,0037)也是计算切片之间空间关系的有用属性。

有关更详细的说明,请参阅section C.7.6.2 of part 3 of the DICOM standard。 (第409页)

答案 2 :(得分:1)

如前面的答案中所讨论的,如何计算DICOM切片之间的空间并不简单。让我们以不同的方式表达问题:如何在3D体积中存储DICOM切片,即用于渲染的等间距切片列表(猜测您想要上传到3D纹理中)。

这是因为捕获CT切片的实际位置可能与放射科医师选择的位置不同。数据集可能已配置为捕获1 mm切片,但CT返回位于0.0 mm,0.997 mm,2.010 mm处的切片,...

如果使用“切片间距”等属性来计算3D体积的大小,则可以轻松获得细微的舍入误差。不要去那里。

相反,必须使用图像位置(患者)(0020,0032),然后执行优化以确定切片如何适合网格。

实践中需要考虑的典型问题:

  • 缺少切片(插入?间隙?)
  • 失步(硬件缺陷?数据缺陷?)