重命名 dicom 图像

Rename dicom images

我有110张CT dicom图像,它们的名字是随机的,所以当我使用任何dicom viewer显示它们时,它们都是随机显示的。因此,我试图根据图像编号 (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 并在新名称中使用它?

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

imgHdr.InstanceNumber = i;

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

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

instancenumber = ImgHdr.InstanceNumber;

我会使用 sprintf

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

sprintf 有很多格式反映了 C++ printf 的格式,我在上面使用的格式打印了一个整数('d')和 4 位数字('4') , 零填充('0')。这有利于文件管理器的自动排序。如果您需要不同的格式,请查看文档 here