From ca5de50079c3be2d23fb32b03b67e94702d5de51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Sch=C3=B6nberger?= Date: Thu, 3 Sep 2015 16:05:04 -0400 Subject: [PATCH] Enforce integral type for label images --- skimage/measure/_regionprops.py | 3 +++ skimage/measure/tests/test_regionprops.py | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/skimage/measure/_regionprops.py b/skimage/measure/_regionprops.py index 5f91de3e..1655ec61 100644 --- a/skimage/measure/_regionprops.py +++ b/skimage/measure/_regionprops.py @@ -491,6 +491,9 @@ def regionprops(label_image, intensity_image=None, cache=True): if label_image.ndim != 2: raise TypeError('Only 2-D images supported.') + if not np.issubdtype(label_image.dtype, np.integer): + raise TypeError('Label image must be of integral type.') + regions = [] objects = ndi.find_objects(label_image) diff --git a/skimage/measure/tests/test_regionprops.py b/skimage/measure/tests/test_regionprops.py index 487d782e..514b84d3 100644 --- a/skimage/measure/tests/test_regionprops.py +++ b/skimage/measure/tests/test_regionprops.py @@ -32,7 +32,9 @@ def test_all_props(): def test_dtype(): regionprops(np.zeros((10, 10), dtype=np.int)) regionprops(np.zeros((10, 10), dtype=np.uint)) - assert_raises((TypeError, RuntimeError), regionprops, + assert_raises((TypeError), regionprops, + np.zeros((10, 10), dtype=np.float)) + assert_raises((TypeError), regionprops, np.zeros((10, 10), dtype=np.double))