0

我正在尝试读取 dicom 文件中的 dicom 标头标签。现在,有两种方法可以读取这个 dicom 标头标签。

1)在 python 中使用 pydicom 包,这在我的 python 安装版本(python 3)上显然不能正常工作。

2)或者当我通过命令行调用AFNI函数'dicom_hinfo'时,我可以获得dicom标签值。在终端调用 afni 函数的语法如下:

dicom_hinfo -tag aaaa,bbbb 文件名.dcm 输出:fgre

现在我应该如何在 python 脚本中调用这个 dicom-info -tag aaaa,bbbb filename.dcm。我猜 subprocess 可能有效,但不确定在这种情况下如何使用它。

4

2 回答 2

1

要从子进程获取输出,您可以使用check_output()函数

#!/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 或终端。可以修改代码以适应它。

于 2015-02-16T03:22:50.527 回答
0

哦,这是由于使用 Pydicom 的语法错误造成的。我想访问 0019、109c 标签。

语法应该是:

ds[0x0019,0x109c].值。

不是 ds[aaaa,bbbb].value

于 2015-02-17T15:40:13.340 回答