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))