编辑:使用dask.array的imread函数
从0.7.0版开始,您无需将图像存储在HDF5中.直接使用imread函数:
In [1]: from skimage.io import imread
In [2]: im = imread('foo.1.tiff')
In [3]: im.shape
Out[3]: (5, 5, 3)
In [4]: ls foo.*.tiff
foo.1.tiff foo.2.tiff foo.3.tiff foo.4.tiff
In [5]: from dask.array.image import imread
In [6]: im = imread('foo.*.tiff')
In [7]: im.shape
Out[7]: (4, 5, 5, 3)
将图片存储到HDF5的较早答案
数据提取通常是最棘手的问题. Dask.array没有与图像文件的任何自动集成(尽管如果有足够的兴趣,这是完全可行的.)幸运的是,将数据移至h5py很容易,因为h5py支持numpy切片语法.在以下示例中,我们将创建一个空的h5py数据集,然后在for循环中将四个小tiff文件存储到该数据集中.
首先,我们获得图像的文件名(请原谅玩具数据集.我周围没有任何现实的东西.)
In [1]: from glob import glob
In [2]: filenames = sorted(glob('foo.*.tiff'))
In [3]: filenames
Out[3]: ['foo.1.tiff', 'foo.2.tiff', 'foo.3.tiff', 'foo.4.tiff']