如何读取文件夹中的所有图像?

时间:2019-01-12 15:11:04

标签: python python-3.x

我正在尝试执行此代码以使用python语言读取文件夹中存在的一组图像,但是如果您能帮助我,我会遇到问题

patient_uids = train_annotations.seriesuid.unique()

patients_processed_files = glob.glob(OUTPUT_FOLDER + '[0-9\.]*_X.npy')
patients_processed = set()
for filename in patients_processed_files:
    m = re.match(r'([0-9\.]*)_X.npy', os.path.basename(filename))
    patients_processed.add(m.group(1))

print(len(patient_uids))

graph = tf.Graph()
with graph.as_default():
    img_chunk = tf.placeholder(tf.float32, shape=[CHUNK_SIZE, CHUNK_SIZE, CHUNK_SIZE], name='img_chunk')
    img_flipped_up_down = tf.image.flip_up_down(img_chunk)
    img_flipped_left_right = tf.image.flip_left_right(img_chunk)
    img_rot_90 = tf.image.rot90(img_chunk)
    img_trans = tf.image.transpose_image(img_chunk)

weird_chunks = {}

for patient_uid in patient_uids:
    if patient_uid in patients_processed:
        print('Skipping already processed patient {}'.format(patient_uid))
        continue
    print('Processing patient {}'.format(patient_uid))

    patient_annotations = train_annotations[train_annotations.seriesuid == patient_uid]
    patient_scans_path = glob.glob(DATA_PATH + 'subset?/{}.mhd'.format(patient_uid))[0]
    img, origin, spacing = load_itk(patient_scans_path)

但是我的代码执行返回我:

IndexError: list index out of range

2 个答案:

答案 0 :(得分:0)

只有在我看到您直接使用索引的地方是行

patient_scans_path = glob.glob(DATA_PATH + 'subset?/{}.mhd'.format(patient_uid))[0]

所以这很可能导致您的错误。似乎没有与您的模式匹配的路径。请直接在该行之前添加

print(len(glob.glob(DATA_PATH + 'subset?/{}.mhd'.format(patient_uid))))

检查是否匹配了多少个元素,如果等于0,则存在问题。

答案 1 :(得分:0)

我是这个论坛的初学者 这是错误的完整回溯: the full traceback of my error