Fix handling of ImageCollection indexing and add test

This commit is contained in:
Steven Silvester
2015-03-20 19:11:29 -05:00
parent e91dcbae0b
commit 45f21d3941
2 changed files with 17 additions and 4 deletions
+7 -4
View File
@@ -254,13 +254,16 @@ class ImageCollection(object):
if ((self.conserve_memory and n != self._cached) or
(self.data[idx] is None)):
kwargs = self.load_func_kwargs
if self._frame_index:
fname, img_num = self._frame_index[n]
self.data[idx] = self.load_func(fname, img_num=img_num,
**self.load_func_kwargs)
if img_num > 0:
self.data[idx] = self.load_func(fname, img_num=img_num,
**kwargs)
else:
self.data[idx] = self.load_func(fname, **kwargs)
else:
self.data[idx] = self.load_func(self.files[n],
**self.load_func_kwargs)
self.data[idx] = self.load_func(self.files[n], **kwargs)
self._cached = n
return self.data[idx]
+10
View File
@@ -1,6 +1,7 @@
import os
import skimage as si
import skimage.io as sio
from skimage import data_dir
import numpy as np
from numpy.testing import *
@@ -12,6 +13,7 @@ try:
FI_available = True
sio.use_plugin('freeimage')
except RuntimeError:
raise
FI_available = False
np.random.seed(0)
@@ -112,5 +114,13 @@ def test_metadata():
assert meta[1][('EXIF_MAIN', 'Software')].startswith('I')
@skipif(not FI_available)
def test_collection():
pattern = [os.path.join(data_dir, pic)
for pic in ['camera.png', 'color.png']]
images = sio.ImageCollection(pattern)
assert len(images) == 2
assert len(images[:]) == 2
if __name__ == "__main__":
run_module_suite()