我正在尝试在dicom文件中读取dicom标头标签。 现在,有两种方法可以读取这个dicom标头标签。
1)在python中使用pydicom包,这在我的python安装版本(python 3)上显然效果不佳。
2)或当我打电话给AFNI功能' dicom_hinfo'通过命令行,我可以得到dicom标签值。在终端中调用afni函数的语法如下:
dicom_hinfo -tag aaaa,bbbb filename.dcm 输出:FGRE
现在我应该如何在python脚本中调用这个dicom-info -tag aaaa,bbbb filename.dcm。 我猜subprocess可能会工作但不确定在这种情况下如何使用它。
答案 0 :(得分:1)
要从子流程获取输出,您可以use check_output()
function:
#!/usr/bin/env python
from subprocess import check_output
tag = check_output('dicom_hinfo -tag aaaa,bbbb filename.dcm output:fgre'.split(),
universal_newlines=True).strip()
universal_newlines=True
用于在Python 3上获取Unicode文本(使用用户区域设置的字符编码对数据进行解码)。
check_output()
假设dicom_hinfo
打印到其标准输出流(stdout)。某些实用程序可能会直接打印到stderr或终端。可以修改代码以适应它。
答案 1 :(得分:0)
哦,这是由于使用Pydicom的语法错误。 我想访问0019,109c标签。
语法应为:
DS [0x0019,0x109c]。价值。
不是ds [aaaa,bbbb] .value