【问题标题】:ITK/SimpleITK DICOM Series Loaded in wrong order / slice spacing incorrectITK/SimpleITK DICOM 系列加载顺序错误/切片间距不正确
【发布时间】:2016-12-08 10:41:09
【问题描述】:

许多数据集都出现了问题,但我们特别注意到它在 dicom 中的 Soft-tissue-Sarcoma

STS_004/1.3.6.1.4.1.14519.5.2.1.5168.1900.124239320067253523699285035604/1.3.6.1.4.1.14519.5.2.1.5168.1900.952127023780097934747932279670

间距读取为 30 而不是 2.9,并且 3D 图像在两个肺切片之间有脑切片

【问题讨论】:

  • VTK 被标记是因为似乎存在类似的问题here

标签: python dicom imaging itk


【解决方案1】:

基本上,如果您使用 SimpleITK.ReadImage 或 VTK 阅读 dicom,该工具会以与列表相同的顺序(通常是字母顺序)加载文件。切片和文件之间的映射不是按字母顺序排列的,而是按随机顺序排列的。这会导致切片间距(这些数据中缺少的标签)计算不正确,因为它是文件 0 和 1 之间的位置差异。它还会导致脑切片出现在两个肺切片和其他奇怪的伪影之间。

解决方案是使用GetGDCMSeriesFileNames 函数对文件进行预排序。

# noinspection PyPep8Naming
import SimpleITK as sitk

def safe_sitk_read(img_list, *args, **kwargs):
    dir_name = os.path.dirname(img_list[0]) 
    s_img_list = sitk.ImageSeriesReader().GetGDCMSeriesFileNames(dir_name)
    return sitk.ReadImage(s_img_list, *args, **kwargs)

【讨论】:

  • 我相信 GDCMImageIO 正在做正确的事情。 GetOrigin 也不是 Slice Location AFAIK。
【解决方案2】:

所以这是我尝试过的:

$ gdcm2vtk --lower-left --ipp-sort STS_004/1.3.6.1.4.1.14519.5.2.1.5168.1900.124239320067253523699285035604/1.3.6.1.4.1.14519.5.2.1.5168.1900.952127023780097934747932279670 /tmp/kmader.mha

然后我检查输出文件:

$ head -13 /tmp/kmader.mha 
ObjectType = Image
NDims = 3
BinaryData = True
BinaryDataByteOrderMSB = False
CompressedData = False
TransformMatrix = 1 0 0 0 1 0 0 0 1
Offset = -250 -250 -5
CenterOfRotation = 0 0 0
ElementSpacing = 0.976562 0.976562 3.3
DimSize = 512 512 311
AnatomicalOrientation = ???
ElementType = MET_SHORT
ElementDataFile = LOCAL

确实,您是对的,GDCM 将 Z-Spacing 计算为 3.3,而在这种情况下它实际上应该是 3.27。请向上游报告错误。


已在当前 git 存储库中修复:

【讨论】:

  • 谢谢,不幸的是,python 包反映 GDCM 的更新可能还需要很长时间,因此在此期间将需要很少的黑客攻击
  • @kmader GetOrigin 返回 3D 空间中的索引。您似乎正在使用第一个坐标。如果您使用其他方向进行采集,这将不起作用。此外,Slice Location 是供应商特定的可选顺序(可能与 3D 空间无关)。
  • 现在在 python 中使用 SimpleITK 有更好的解决方案吗?还是我需要手动拉取最新的master分支,编译gdcm2vtk,执行就行了,然后读入MHA?
  • 我会直接使用 SimpleITK 中的一个示例。例如itk.org/SimpleITKDoxygen/html/…
猜你喜欢
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多