diff --git a/skimage/transform/rescale.py b/skimage/transform/rescale.py index b7164994..e974bc8f 100644 --- a/skimage/transform/rescale.py +++ b/skimage/transform/rescale.py @@ -4,43 +4,36 @@ import numpy as np def downsample(image, factors, method='sum'): - is0 = image.shape[0] - is1 = image.shape[1] - f0 = factors[0] - f1 = factors[1] + is = image.shape + f = factors - if (f0 - int(f0) != 0) or (f1 - int(f1) != 0): - print "Use resample() for non-integer downsampling" - return - cropped = image[:is0 - (is0 % f0), :is1 - (is1 % f1)] - out = np.zeros((cropped.shape[0] / f0, cropped.shape[1] / f1)) + if (f[0] - int(f[0]) != 0) or (f[1] - int(f[1]) != 0): + raise ValueError('Use resample() for non-integer downsampling') + cropped = image[:is[0] - (is[0] % f[0]), :is[1] - (is[1] % f[1])] + out = np.zeros((cropped.shape[0] / f[0], cropped.shape[1] / f[1])) for i in range(cropped.shape[0]): for j in range(cropped.shape[1]): - out[int(i / f0)][int(j / f1)] += cropped[i][j] + out[int(i / f[0])][int(j / f[1])] += cropped[i][j] if method == 'sum': return out else: - return out / float(f0 * f1) + return out / float(f[0] * f[1]) def upsample(image, factors, method='divide'): - is0 = image.shape[0] - is1 = image.shape[1] - f0 = factors[0] - f1 = factors[1] - - if (f0 - int(f0) != 0) or (f1 - int(f1) != 0): - print "Use resample() for non-integer upsampling" - return - out = np.zeros((f0 * image.shape[0], f1 * image.shape[1])) + is = image.shape + f = factors + if (f[0] - int(f[0]) != 0) or (f[1] - int(f[1]) != 0): + raise ValueError('Use resample() for non-integer upsampling') + out = np.zeros((f[0] * image.shape[0], f[1] * image.shape[1])) for i in range(out.shape[0]): for j in range(out.shape[1]): - out[i][j] = (image[i / f0][j / f1]) + out[i][j] = (image[i / f[0]][j / f[1]]) if method == 'divide': - return out / float(f0 * f1) + return out / float(f[0] * f[1]) else: return out