快速阅读和处理许多JPG图像的方法

时间:2014-01-25 08:50:51

标签: python image-processing numpy jpeg

我正在处理一个我处理的项目:

  • 总计1 GB
  • 的70,000张JPG图像
  • 每个文件大约15kb。
  • 每张图片为424x424。

我目前使用这些文件的解决方案是拍摄每张图像,将其裁剪为150x150,然后将其保存在NumPy memmap阵列中。我最终得到了一个尺寸为70,000 x 150 x 150 x 3(彩色图像)的大型memmap数组文件。

我的下一步是遍历此memmap数组并随机采样图像补丁。但是,我的代码目前运行速度非常慢,最烦人的是,它只占CPU的10%左右,HD读取速度为1-5 MB /秒。这可能甚至低于不预先计算裁剪的numpy memmap数组并且每次都读取JPG。

我可以做些什么来更好地利用我的系统资源?

系统信息

  • Mac OS X
  • 带硬盘的Macbook Pro

谢谢!

1 个答案:

答案 0 :(得分:0)

首先,@ AndreiBoyanov的评论对我来说听起来很合理。

这是另一种方法。

>>> 7e4 * 150**2 * 3 / 1024.**3
4.400499165058136

memmap的后端文件将增长到4.4 GB。如果您的OS X计算机有更多RAM,您可以在RAM磁盘上创建后端文件,例如5 GB:

这几乎等于扔掉memmap,但它可以快速解决您的问题。