From eff276c99b00d9ba8653b821bc87569b4f35d342 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jostein=20B=C3=B8=20Fl=C3=B8ystad?= Date: Tue, 29 Oct 2013 11:58:59 +0100 Subject: [PATCH] Bug: Fix label sequence in regionprops. Closes gh-806. --- skimage/measure/_regionprops.py | 3 +++ skimage/measure/tests/test_regionprops.py | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/skimage/measure/_regionprops.py b/skimage/measure/_regionprops.py index 798e04cc..dfb7eb8c 100644 --- a/skimage/measure/_regionprops.py +++ b/skimage/measure/_regionprops.py @@ -503,6 +503,9 @@ def regionprops(label_image, properties=None, objects = ndimage.find_objects(label_image) for i, sl in enumerate(objects): + if sl is None: + continue + label = i + 1 props = _RegionProperties(sl, label, label_image, diff --git a/skimage/measure/tests/test_regionprops.py b/skimage/measure/tests/test_regionprops.py index c0c6443d..5a4dd117 100644 --- a/skimage/measure/tests/test_regionprops.py +++ b/skimage/measure/tests/test_regionprops.py @@ -347,6 +347,20 @@ def test_old_dict_interface(): assert_equal(len(feats[0]), 8) +def test_label_sequence(): + a = np.empty((2, 2), dtype=np.int) + a[:, :] = 2 + ps = regionprops(a) + assert len(ps) == 1 + assert ps[0].label == 2 + + +def test_pure_background(): + a = np.zeros((2, 2), dtype=np.int) + ps = regionprops(a) + assert len(ps) == 0 + + if __name__ == "__main__": from numpy.testing import run_module_suite run_module_suite()