From d7824000fe92f50b565a9c6a7d49006814101ac0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Sch=C3=B6nberger?= Date: Wed, 2 Oct 2013 14:14:29 +0200 Subject: [PATCH] Raise error for non 2-D images --- skimage/measure/_regionprops.py | 5 +++++ skimage/measure/tests/test_regionprops.py | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/skimage/measure/_regionprops.py b/skimage/measure/_regionprops.py index 93abc816..884311b1 100644 --- a/skimage/measure/_regionprops.py +++ b/skimage/measure/_regionprops.py @@ -471,6 +471,11 @@ def regionprops(label_image, properties=None, >>> props[0]['centroid'] # centroid of first labelled object """ + label_image = np.squeeze(label_image) + + if label_image.ndim != 2: + raise TypeError('Only 2-D images supported.') + if properties is not None: warnings.warn('The ``properties`` argument is deprecated and is ' 'not needed any more as properties are ' diff --git a/skimage/measure/tests/test_regionprops.py b/skimage/measure/tests/test_regionprops.py index c21418ab..647c09a7 100644 --- a/skimage/measure/tests/test_regionprops.py +++ b/skimage/measure/tests/test_regionprops.py @@ -34,6 +34,13 @@ def test_dtype(): assert_raises(TypeError, regionprops, np.zeros((10, 10), dtype=np.double)) +def test_ndim(): + regionprops(np.zeros((10, 10), dtype=np.int)) + regionprops(np.zeros((10, 10, 1), dtype=np.int)) + regionprops(np.zeros((10, 10, 1, 1), dtype=np.int)) + assert_raises(TypeError, regionprops, np.zeros((10, 10, 2), dtype=np.int)) + + def test_area(): area = regionprops(SAMPLE)[0].area assert area == np.sum(SAMPLE)