From 157fef3963180be05c8cf436096b4116c0b74001 Mon Sep 17 00:00:00 2001 From: stevendbrown Date: Mon, 9 Nov 2015 10:50:20 -0800 Subject: [PATCH] Added label vs. intensity shape checking to regionprops --- skimage/measure/_regionprops.py | 5 +++++ skimage/measure/tests/test_regionprops.py | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/skimage/measure/_regionprops.py b/skimage/measure/_regionprops.py index 1655ec61..08005a4e 100644 --- a/skimage/measure/_regionprops.py +++ b/skimage/measure/_regionprops.py @@ -108,6 +108,11 @@ class _RegionProperties(object): def __init__(self, slice, label, label_image, intensity_image, cache_active): + + if not intensity_image is None: + if not intensity_image.shape == label_image.shape: + raise ValueError('Label and intensity image must be the same shape.') + self.label = label self._slice = slice self._label_image = label_image diff --git a/skimage/measure/tests/test_regionprops.py b/skimage/measure/tests/test_regionprops.py index 514b84d3..8944cabc 100644 --- a/skimage/measure/tests/test_regionprops.py +++ b/skimage/measure/tests/test_regionprops.py @@ -362,6 +362,11 @@ def test_invalid(): assert_raises(AttributeError, get_intensity_image) +def test_invalid_size(): + wrong_intensity_sample = np.array([[1], [1]]) + assert_raises(ValueError, regionprops, SAMPLE, wrong_intensity_sample) + + def test_equals(): arr = np.zeros((100, 100), dtype=np.int) arr[0:25, 0:25] = 1