无法在SimpleITK中循环浏览图像



我想通读不同文件夹中的图像。我写了以下代码

for Case_id in range(1,6):
path ='/Users/XXXXXX/Desktop/pyradiomics/Converted/Case{}/'.format(Case_id)
print(path)
for files in os.listdir(path):
if files.endswith("Image.nii"):
print(files)
image=sitk.ReadImage (files)
if files.endswith("label.nii"):
print(files)
mask=sitk.ReadImage (files)

当我运行此程序时,我收到一条错误消息:

RuntimeError:SimpleITK ReadImage中引发异常:/scratch/ddashboard/SimpleITK-OSX10.6-x86_64-pkg/SimpleITK/Code/IO/src/sitkImageReaderBase.cx:89:

sitk::错误:文件"xxxx_image.nii"不存在。

如果我只是运行打印命令,我可以看到指定文件夹中的所有文件和路径。非常感谢您的帮助。

@dave chen是正确的。您需要加入路径才能获得完整路径。尝试:

for Case_id in range(1,6):
path ='/Users/XXXXXX/Desktop/pyradiomics/Converted/Case{}/'.format(Case_id)
print(path)
for files in os.listdir(path):
if files.endswith("Image.nii"):
print(files)
image=sitk.ReadImage(os.path.join(path, files))
if files.endswith("label.nii"):
print(files)
mask=sitk.ReadImage(os.path.join(path, files))

我猜您需要将完整的路径名传递给ReadImage。'files’只是文件的名称。如果您没有在"path"目录中运行脚本,ReadImage将不会对文件进行微调,因此它将在当前工作目录中查找。

最新更新