慢速打开python,建议提高速度?

时间:2016-07-14 16:21:22

标签: python numpy python-imaging-library

我正在做一些非常基本的图像增强来训练一个小天使,它非常慢。我想知道是否有人建议在python中更快地打开,翻转和关闭图像?它有大约10万张图像需要经过几个小时。

print 'Example of image in train.txt: ' + image_file[0]
print 'Example of annotation in train.txt: ' + annot_file[0]
train_file.close()

for i in range(len(image_file)):
    temp_image = imread(image_file[i])
    temp_annot = imread(annot_file[i])

    temp_image_name = image_file[i][:-4] + '_augmented_lrflip.png'
    temp_annot_name = annot_file[i][:-4] + '_augmented_lrflip.png'
    imsave(temp_image_name,np.fliplr(temp_image))
    imsave(temp_annot_name,np.fliplr(temp_annot))

    image_file.append(temp_image_name)
    annot_file.append(temp_annot_name)

    temp_image_name = image_file[i][:-4] + '_augmented_lr_ud_flip.png'
    temp_annot_name = annot_file[i][:-4] + '_augmented_lr_ud_flip.png'
    imsave(temp_image_name,np.fliplr(np.flipud(temp_image)))
    imsave(temp_annot_name,np.fliplr(np.flipud(temp_annot)))

    image_file.append(temp_image_name)
    annot_file.append(temp_annot_name)

    temp_image_name = image_file[i][:-4] + '_augmented_udflip.png'
    temp_annot_name = annot_file[i][:-4] + '_augmented_udflip.png'
    imsave(temp_image_name,np.flipud(temp_image))
    imsave(temp_annot_name,np.flipud(temp_annot))

    image_file.append(temp_image_name)
    annot_file.append(temp_annot_name)

train_file_mod = open('train_augmented.txt', 'wb')
for i in range(len(image_file)):
    train_file_mod.write(image_file[i] + ' ' + annot_file[i] + '\n')

train_file_mod.close()

2 个答案:

答案 0 :(得分:1)

我建议使用Keras(这是在Theano或TensorFlow之上的深度学习抽象层)。它已经内置了ImageDataGenerator。您基本上可以使用它从数据集中生成不同的图像(旋转,展开,填充)。

答案 1 :(得分:0)

我会试试PIL或Pillow包。

PIL文档:http://www.pythonware.com/products/pil/

枕头文件:https://pillow.readthedocs.io/en/3.3.x/

如果你想将你的图像转换为numpy数组并以这种方式处理它们,那么这里有一些例子: http://code.activestate.com/recipes/577591-conversion-of-pil-image-and-numpy-array/