在python中加载图像以进行处理的最快方法

时间:2018-05-08 12:43:57

标签: python numpy image-processing machine-learning computer-vision

我想在我的8gb ram中以numpy数组的形式加载超过10000个图像。到目前为止,我已经尝试了cv2.imread,keras.preprocessing.image.load_image,pil,imageio,scipy。我想这样做最快的方式,但我无法弄清楚它是什么。

3 个答案:

答案 0 :(得分:1)

如果您正在使用keras库来创建deep learning模型,建议您使用image包中的keras.preprocessing类。

image类提供了一个方法img_to_array,它返回了一个numpy数组。

此外,它在内部使用NumPy - Numpy进行所有array操作/计算。

train_image = image.load_img(path, target_size = (height, width)) 
train_image = image.img_to_array(train_image)

答案 1 :(得分:0)

最快的方法之一就是让你的多处理器在并行工作中要求并行化你想要的工作,它会让多个处理器同时处理你的任务,因为并发运行不是问题。这种并行处理使您可以快速完成任务。现在,下面的示例只是一个简单的草图,它可以看起来很简单,您可以使用小函数进行练习,然后将它与您自己的代码集成:

from multiprocessing import Process
    #this is the function to be parallelised
    def image_load_here(image_path):
        pass 

if __name__ == '__main__':
    #Start the multiprocesses and provide your dataset.
    p = Process(target=image_load_here,['img1', 'img2', 'img3', 'img4'])
    p.start()
    p.join()

随意写作,尽力帮助。

答案 2 :(得分:0)

Using = locator