我需要裁剪 Dicom 系列并将结果再次保存为 Dicom 系列,保留有关位置的信息。我的问题类似于DICOM 文件压缩,但不幸的是所有答案都是关于压缩而不是裁剪。
另一个问题是原始系列非常大,我无法将其全部加载到计算机的内存中(但如果需要,我可以使用 Unix 服务器进行计算)。
我曾尝试使用 ITK:我复制了示例 DicomSeriesReadSeriesWrite.cxx(在 ITK 软件指南中描述),在编写之前使用了cropimageFilter。问题是使用指令
seriesWriter->SetMetaDataDictionaryArray(reader->GetMetaDataDictionaryArray() );
结果图像位置(0020,0037)的第三维总是设置为0。如果我评论该指令,图像位置是正确的,但图像编号(0020,0013)和SliceLocation(0020,1041)不是,并且结果系列不会像 Osirix 一样加载到某些软件中。
我也尝试过使用 Dicom2 ( http://www.barre.nom.fr/medical/dicom2/ )。同样,图像被裁剪得很好,但元数据不一致(它们与原始图像相同)。
我曾尝试使用 Amira,但除了内存问题外,将裁剪数据保存为 dicom 的过程会忽略原始 dicom 标签(例如图像位置为 [-1.#ND/-1.#ND/-1.#ND ],其他标签也如“系列日期”更改)。