重命名dicom图像

时间:2015-05-14 19:43:30

标签: matlab rename dicom

我有110张CT dicom图像,它们的名字是random,因此当我使用任何dicom查看器显示它们时,它们会随机显示。因此,我试图根据它们的图像编号(0020,0013)或切片位置(0020,1041)重命名这些dicom图像。我已经开始写剧本了

image_list=dir('*.dcm');
 for i=1:25
    img=dicomread(image_list(i).name);
    imgHdr = dicominfo(image_list(i).name);
 dicomwrite(img, ['T' num2str(i) '.dcm'], imgHdr,'CreateMode','Copy')
end

但是我不知道如何告诉它检查InstanceNumber并以新名称使用它?

2 个答案:

答案 0 :(得分:2)

InstanceNumber可作为dicominfo输出结构的元素访问:

instancenumber = ImgHdr.InstanceNumber;

我会使用sprintf

构建文件名
outputfilename = sprintf('T%04d', instancenumber);

sprintf镜像来自C ++ printf的格式有很多格式,我上面使用的格式打印整数(' d') 4位数(' 4'),零填充(' 0')。这适用于文件管理器的自动排序。如果您需要其他格式,请查看文档here

答案 1 :(得分:0)

我认为您只需要在脚本中添加以下行:

imgHdr.InstanceNumber = i;

并尝试在查看器中加载图像。