使用pydicom尝试读取测试文件,如下所示:
from pydicom.data import get_testdata_files
pass_dicom = "CT-MONO2-16-ankle.dcm"
filename = get_testdata_files(pass_dicom)[0]
我得到一个错误
Traceback (most recent call last):
File "t.py", line 4, in <module>
filename = get_testdata_files(pass_dicom)[0]
IndexError: list index out of range
请帮帮忙。
发布于 2019-08-27 00:52:48
如果您要读入单个DICOM文件,请使用pydicom.data.data_manager.get_files
方法。您需要提供两个参数: base和pattern。根据文档,base是作为字符串进行递归搜索的基目录,pattern是用于过滤文件的字符串模式(默认为"*")。对于base,输入DICOM图像所在位置的完整路径(不包括文件名),对于pattern,输入DICOM图像名称。结果将是一个只有一个元素的列表,所以一定要在最后写上[0]
。
所以,
import pydicom
import pydicom.data
base = "path/to/folder/containing/DICOM/file"
pass_dicom = "CT-MONO2-16-ankle.dcm"
filename= pydicom.data.data_manager.get_files(base,pass_dicom)[0]
发布于 2018-08-24 12:49:52
get_testdata_files
在您的python安装目录下的lib\site-packages\pydicom\data\test_files
中查找文件。
"CT-MONO2-16-ankle.dcm“似乎不在提供的示例文件中(至少我没有在pydicom 1.1.0中提供它)。因此,get_testdata_files返回一个空列表([]
),当您尝试获取第0项时,它会引发异常,因为没有第0项。
将来,在调试这类错误时,请考虑分解代码。一旦您发现get_testdata_files(pass_dicom)[0]
有问题,请尝试get_testdata_files(pass_dicom)
。看看它的结果是什么,为什么。
请记住,pydicom源代码可以在线获得并安装在您自己的计算机上,因此您总是可以看到(例如) get_testdata_files
正在尝试做什么。
https://stackoverflow.com/questions/51817735
复制相似问题