我正在使用 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 直到正确的数字?
默认情况下,我上面引用的命令行采用最后一个字段......我想。