【发布时间】:2015-10-13 15:01:48
【问题描述】:
我正在使用 DCMTK (3.6.0) 库来获取 (0020,0013) 标记的值,它是图像编号,也就是系列的切片编号。
我在批处理脚本中使用以下内容
for /f "tokens=2 delims=[]" %%a in ('@echo. ^|c:\Libs\dcmtk-3.6.0\bin\dcmdump +P "0020,0013" %%i') do (set img_no=%%a)
它通常很顺利,但有时这个值总是设置为'0'到整个系列。
我试图用这个命令转储它
C:\Libs\dcmtk-3.6.0\bin>dcmdump +P "0020,0013" PathToInvalideDICOM\img.dcm
(0020,0013) IS [0] # 2, 1 InstanceNumber
(0020,0013) IS [4] # 2, 1 InstanceNumber
(0020,0013) IS [0] # 2, 1 InstanceNumber
C:\Libs\dcmtk-3.6.0\bin>dcmdump +P "0020,0013" PathToCorrectDICOM\img.dcm
(0020,0013) IS [0] # 2, 1 InstanceNumber
(0020,0013) IS [5] # 2, 1 InstanceNumber
正如我们所见,有时要获取的值(不是“0”)是最后一个。在这种情况下,一切都很好。但在某些特定情况下,正确的值存储在两个 '0' 之间。
我也尝试过使用不同的转储程序 (DCM4CHE 2.0.23),它给了我相同的结果。
我想知道为什么会这样。不仅如此,如何得到正确的值?
有没有办法在批处理文件中消除 0 直到正确的数字?
默认情况下,我上面引用的命令行采用最后一个字段...我认为。
【问题讨论】:
标签: batch-file dicom dcm4che dcmtk