diff --git a/skimage/measure/_regionprops.py b/skimage/measure/_regionprops.py index 99258c66..dc01fc24 100644 --- a/skimage/measure/_regionprops.py +++ b/skimage/measure/_regionprops.py @@ -80,6 +80,11 @@ class _RegionProperties(object): def __init__(self, slice, label, label_image, intensity_image, cache_active): + + if intensity_image is not None: + if not intensity_image.shape == label_image.shape: + raise ValueError('Label and intensity image must have the same shape.') + self.label = label self._slice = slice diff --git a/skimage/measure/tests/test_regionprops.py b/skimage/measure/tests/test_regionprops.py index 919c0229..01330cdf 100644 --- a/skimage/measure/tests/test_regionprops.py +++ b/skimage/measure/tests/test_regionprops.py @@ -358,6 +358,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