语境
我经常发现自己处于以下情况:
- 我有一个需要处理的图像文件名列表
- 我使用例如 scipy.misc.imread 顺序读取每个图像
- 然后我对每张图像进行某种处理并返回结果
- 我将结果沿图像文件名保存到一个书架中
问题在于,简单地读取图像会花费不可忽略的时间,有时与图像处理相比甚至更长。
问题
所以我认为理想情况下我可以在处理图像 n 时读取图像 n + 1。或者以自动确定的最佳方式一次更好地处理和读取多个图像?
我已经阅读了多处理、线程、扭曲、gevent 等,但我不知道要使用哪个以及如何实现这个想法。有没有人有解决这类问题的方法?
最小的例子
# generate a list of images
scipy.misc.imsave("lena.png", scipy.misc.lena())
files = ['lena.png'] * 100
# a simple image processing task
def process_image(im, threshold=128):
label, n = scipy.ndimage.label(im > threshold)
return n
# my current main loop
for f in files:
im = scipy.misc.imread(f)
print process_image(im)