diff --git a/skimage/util/arraypad.py b/skimage/util/arraypad.py index 49f89e3d..cce40dc8 100644 --- a/skimage/util/arraypad.py +++ b/skimage/util/arraypad.py @@ -1530,7 +1530,7 @@ def crop(ar, crop_width, copy=False, order='K'): """ ar = np.array(ar, copy=False) crops = _validate_lengths(ar, crop_width) - slices = tuple([slice(a, -b) for a, b in crops]) + slices = [slice(a, ar.shape[i] - b) for i, (a, b) in enumerate(crops)] if copy: cropped = np.copy(ar[slices], order=order) else: diff --git a/skimage/util/tests/test_arraypad.py b/skimage/util/tests/test_arraypad.py index 4d990d0a..d6f993f9 100644 --- a/skimage/util/tests/test_arraypad.py +++ b/skimage/util/tests/test_arraypad.py @@ -1081,5 +1081,11 @@ def test_copy_crop(): assert np.may_share_memory(arr, out1) +def test_zero_crop(): + arr = np.arange(45).reshape(9, 5) + out = crop(arr, 0) + assert out.shape == (9, 5) + + if __name__ == "__main__": np.testing.run_module_suite()