我将大量的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限制还是由于它是否是数组的创建。
答案 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