我一直在使用dicom-contour包将DICOM图像和轮廓转换为numpy数组。当我调用cfile 2 pixels函数返回给定轮廓文件的img_image和contour_image对列表时,我得到了这个错误:FileNotFound
[错误2]没有这样的文件或目录:'/content/drive/MyDrive/MRIplusGd-with-Contour/1.2.840.113619.2.388.10502719.2140823.14003.1697945075.89.dcm'
轮廓是RTSS文件格式,而我目录中的MRI图像命名为“IMG00000000.dcm”。但是,该函数查找具有不同命名约定的图像。我如何解决这个问题?
https://github.com/KeremTurgutlu/dicom-contour/blob/master/tutorial.ipynb
from dicom_contour.contour import \*
def get_contour_file(path):
"""
Get contour file from a given path by searching for ROIContourSequence
inside dicom data structure.
"""
# handle `/` missing
if path[-1] != '/': path += '/'
# get .dcm contour file
fpaths = [path + f for f in os.listdir(path) if '.dcm' in f]
n = 0
for fpath in fpaths:
f = dicom.read_file(fpath)
if 'ROIContourSequence' in dir(f):
contour_file = fpath.split('/')[-1]
n += 1
if n > 1: warnings.warn("There are multiple files, returning the last one!")
return contour_file
个字符
1条答案
按热度按时间gopyfrb31#
您使用的dicom_contour库似乎希望图像文件根据contour数据集中的
ReferencedSOPInstanceUID
命名。相关行从此处开始,如下所示:字符串
你必须自己修改这个库,让它以不同的方式工作。我建议你这样做(未经测试):
型
然后将库中的第二行更改为:
型
注意这里我使用的是
dcmread
而不是read_file
,read_file
已经过时了。你还需要在其他库中使用import Path
和from pydicom import dcmread
。当然,还有其他方法可以做到这一点。例如,在上面的代码中,图像文件已经被读入,因此您可以更改
dicom_contour
函数的参数,直接传入image_datasets,而不是再次阅读它们。