将DICOM文件堆叠为一个多切片系列

时间:2019-04-03 13:11:36

标签: matlab dicom

我正在尝试将不同的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快照方式打开系列时,它遇到了一个异常,指出矢量太长。我可以在ITK快照上打开单个dicom文件,但是,如果该系列中有多个图像,并且该系列显示为256x212xnum,其中num是文件数,则会遇到异常。

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

您尝试做的事情称为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

希望有帮助。

相关问题