改善图像的复制字节

时间:2016-03-30 04:07:38

标签: python image

我有以下最小代码从图像中获取字节:

import Image

im = Image.open("kitten.png")
im_data = [pix for pixdata in im.getdata() for pix in pixdata]

这个速度相当慢(我要处理几千兆字节的图像)所以如何才能加快速度呢?我也不熟悉该代码究竟要做什么。我所有的数据都是1280 x 960 x 8位RGB,所以我可以忽略角落等情况。

(仅供参考,完整代码为here - 我已使用上述ImageFile替换Image.open()循环。)

3 个答案:

答案 0 :(得分:2)

你可以尝试

scipy.ndimage.imread()

答案 1 :(得分:0)

如果你的意思是通过algorythamically加速我可以建议你同时访问多个线程的文件(只有你没有处理序列之间的连接)

逻辑上按几个部分划分文件并同时使用线程访问每个部分(您必须将操作放在一个函数中并使用线程调用它)

这是一个关于python中线程的教程的链接

threding in python

答案 2 :(得分:0)

我解决了我的问题,我想:

>>> [pix for pixdata in im.getdata() for pix in pixdata] ==
           numpy.ndarray.tolist(numpy.ndarray.flatten(numpy.asarray(im)))
True

这会将运行时间缩短一半,并且有一点bash魔法,我可以并行运行56个目录上的转换。