在python中读取图像文件的速度

时间:2014-04-19 15:20:09

标签: imagej

我将大量的16MB tiff文件读入一个numpy数组,然后从外部USB磁盘驱动器读入一个python Queue(永不填充)。

Linux中的iotop报告文件读取速度大约为11-12MB / s。

如果我使用ImageJ(一个Java应用程序)来读取相同的文件,我的速度大约为26MB / s。

这是执行读取的片段:它在与应用程序其余部分分开的单个线程上运行。

def fileReader(self):
    for file_ in self.files:
    im_array = np.asarray(Image.open(file_))
    self.im_array_queue.put(im_array)

我想知道较低的速度是由于Python IO限制还是由于它是否是数组的创建。

2 个答案:

答案 0 :(得分:2)

我发现tifffile非常适合加载tiff,与imagej相当:http://www.lfd.uci.edu/~gohlke/code/tifffile.py.html 它还支持16位和多页tiff

答案 1 :(得分:0)

这不是Python的限制。

使用openCV

import cv2
im = cv2.imread(file_)

与ImageJ

相比,我的速度可达26MB / s