重命名 dicom 图像
Posted
技术标签:
【中文标题】重命名 dicom 图像【英文标题】:Rename dicom images 【发布时间】:2015-05-14 19:43:29 【问题描述】:我有 110 张 CT dicom 图像,它们的名称是随机的,所以当我使用任何 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 并在新名称中使用它?
【问题讨论】:
我使用了 MatLab 提供的.dcm
(info = dicominfo('CT-MONO2-16-ankle.dcm')
,但我在dicominfo
提供的信息中没有找到Image Number
。check the image number
是什么意思?
@il_raffa 抱歉,我的意思是 Matlab 中的 InstanceNumber(imageJ 中的图像编号)
【参考方案1】:
InstanceNumber
可作为dicominfo
输出结构的元素访问:
instancenumber = ImgHdr.InstanceNumber;
我会使用sprintf
构造文件名
outputfilename = sprintf('T%04d', instancenumber);
sprintf
有多种格式与 C++ 中的printf
类似,我上面使用的格式打印一个整数('d'),有 4 位数字('4'),补零('0' )。这有利于文件管理器的自动排序。如果您需要不同的格式,请查看文档here。
【讨论】:
【参考方案2】:我认为您只需在脚本中添加以下行:
imgHdr.InstanceNumber = i;
并尝试在查看器中加载图像。
【讨论】:
感谢vizhanyolajos的回复,我试过了,但是又随机显示了。 明天我会为你尝试一些东西......如果我有时间的话。 感谢 vizhanyolajos,我设法按照 xenoclast 的建议做到了。再次感谢您的帮助以上是关于重命名 dicom 图像的主要内容,如果未能解决你的问题,请参考以下文章