From 2af5c41571e09b7c2e79a8c048dd84102b22e0eb Mon Sep 17 00:00:00 2001 From: Juan Nunez-Iglesias Date: Mon, 9 Sep 2013 13:53:33 +1000 Subject: [PATCH] Fix type hierarchy check in remove_small_objects --- skimage/morphology/misc.py | 2 +- skimage/morphology/tests/test_misc.py | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/skimage/morphology/misc.py b/skimage/morphology/misc.py index 88770371..5c157e7f 100644 --- a/skimage/morphology/misc.py +++ b/skimage/morphology/misc.py @@ -52,7 +52,7 @@ def remove_small_objects(ar, min_size=64, connectivity=1, in_place=False): True """ # Should use `issubdtype` for bool below, but there's a bug in numpy 1.7 - if not (ar.dtype == bool or np.issubdtype(ar.dtype, int)): + if not (ar.dtype == bool or np.issubdtype(ar.dtype, np.integer)): raise TypeError("Only bool or integer image types are supported. " "Got %s." % ar.dtype) diff --git a/skimage/morphology/tests/test_misc.py b/skimage/morphology/tests/test_misc.py index a5ab7ba9..94d27f64 100644 --- a/skimage/morphology/tests/test_misc.py +++ b/skimage/morphology/tests/test_misc.py @@ -42,6 +42,19 @@ def test_labeled_image(): assert_array_equal(observed, expected) +def test_uint_image(): + labeled_image = np.array([[2, 2, 2, 0, 1], + [2, 2, 2, 0, 1], + [2, 0, 0, 0, 0], + [0, 0, 3, 3, 3]], dtype=np.uint8) + expected = np.array([[2, 2, 2, 0, 0], + [2, 2, 2, 0, 0], + [2, 0, 0, 0, 0], + [0, 0, 3, 3, 3]], dtype=np.uint8) + observed = remove_small_objects(labeled_image, min_size=3) + assert_array_equal(observed, expected) + + def test_float_input(): float_test = np.random.rand(5, 5) assert_raises(TypeError, remove_small_objects, float_test)