From 813142baf879bc8eaa0c8ffc2faf9983f4a0eda2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Sch=C3=B6nberger?= Date: Mon, 15 Dec 2014 09:50:07 +0100 Subject: [PATCH] Check for invalid upsampling block sizes --- skimage/measure/block.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/skimage/measure/block.py b/skimage/measure/block.py index aabd1a39..a670a5fd 100644 --- a/skimage/measure/block.py +++ b/skimage/measure/block.py @@ -13,8 +13,8 @@ def block_reduce(image, block_size, func=np.sum, cval=0): Array containing down-sampling integer factor along each axis. func : callable Function object which is used to calculate the return value for each - local block. This function must implement an ``axis`` parameter such as - ``numpy.sum`` or ``numpy.min``. + local block. This function must implement an ``axis`` parameter such + as ``numpy.sum`` or ``numpy.min``. cval : float Constant padding value if image is not perfectly divisible by the block size. @@ -58,6 +58,10 @@ def block_reduce(image, block_size, func=np.sum, cval=0): pad_width = [] for i in range(len(block_size)): + if block_size[i] < 1: + raise ValueError("Down-sampling factors must be >= 1. Use " + "`skimage.transform.resize` to up-sample an " + "image.") if image.shape[i] % block_size[i] != 0: after_width = block_size[i] - (image.shape[i] % block_size[i]) else: