【问题标题】:Stacking DICOM files into one multi-slice series将 DICOM 文件堆叠成一个多切片系列
【发布时间】:2019-04-03 13:11:36
【问题描述】:

我正在尝试将不同的 DICOM 文件堆叠成一个多切片系列,以便在 ITK-Snap 上将它们可视化。但是,我似乎无法获得功能正常的 DICOM 系列。

我已经根据切片位置对所有文件进行了排序,并且我有许多有序的单个 .dcm 文件及其原始信息。我用一个 uid 替换了他们所有的原始系列实例 UID,并将它们的系列号替换为我设置为“999”的一个自定义系列号(以便使它们属于一个系列)。所有文件的图像方向设置为[1;0;0;0;1;0],所有文件的切片厚度为 8 mm。 然后我创建了一个信息结构数组,原始切片为positionings [info(num)]

我尝试过类似的方法:

for i=1:num %where num is the number of dicom files
k = num2str(i);
dicomwrite(imm,k,info(i),'CreateMode','Copy'); %where imm is the matrix I obtained with dicomread
end

我获得了一组新的 dicom 文件,命名为从 1 到 num 的数字,但是当我尝试在 ITK-snap 上打开该系列时,它遇到了一个异常,指出向量太长。我可以在 ITK-snap 上打开单个 dicom 文件,但是当多个图像是系列的一部分,并且系列被可视化为 256x212xnum 其中 num 是文件数时,我遇到了异常。

我做错了什么?

【问题讨论】:

    标签: matlab dicom


    【解决方案1】:

    您正在尝试执行的操作称为Multi-frame in the DICOM standard。简而言之,除了确保所有图像元数据仍然正确之外,您还需要指定Number of Frames (0028,0008)Frame Increment Pointer (0028,0009)。不幸的是,Frame Increment Pointer 标签的确切工作方式的措辞有点含糊:

    多帧图像中的帧应作为逻辑序列传送。确定帧顺序的信息应由帧增量指针 (0028,0009) 传送的一个或多个数据元素标签标识。每个支持多帧模块的特定图像 IOD 都专门使用帧增量指针 (0028,0009) 来识别可用作序列的属性。

    即使只存在一个帧,帧增量指针 (0028,0009) 仍然需要存在并具有至少一个值,每个值都应指向同样存在于数据集中的属性,并且有一个价值。 1

    希望对您有所帮助。

    【讨论】:

    • 谢谢我尝试指定这些附加信息,文件似乎工作正常!
    猜你喜欢
    • 2020-01-05
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    相关资源
    最近更新 更多