diff --git a/skimage/transform/rescale.py b/skimage/transform/rescale.py index 69e004a9..4ec4ab99 100644 --- a/skimage/transform/rescale.py +++ b/skimage/transform/rescale.py @@ -2,50 +2,52 @@ import numpy as np -def downsample(image, factors, how = 'sum'): +def downsample(image, factors, method='sum'): - is0 = image.shape[0] - is1 = image.shape[1] - f0 = factors[0] - f1 = factors[1] + is0 = image.shape[0] + is1 = image.shape[1] + f0 = factors[0] + f1 = factors[1] - if (f0 - int(f0) != 0) or (f1 - int(f1) != 0): - return "Use resample for non-integer downsampling" - cropped = image[: is0 - (is0 % f0), : is1 - (is1 % f1)] - out = np.zeros((cropped.shape[0] / f0, cropped.shape[1] / f1)) + 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 how == 'sum': - for i in range(cropped.shape[0]): - for j in range(cropped.shape[1]): - out[int(i / f0)][int(j / f1)] += cropped[i][j] - return out + if method == 'sum': + for i in range(cropped.shape[0]): + for j in range(cropped.shape[1]): + out[int(i / f0)][int(j / f1)] += cropped[i][j] + return out - if how == 'mean': - for i in range(cropped.shape[0]): - for j in range(cropped.shape[1]): - out[int(i / f0)][int(j / f1)] += cropped[i][j] / float(f0 * f1) - return out + if method == 'mean': + for i in range(cropped.shape[0]): + for j in range(cropped.shape[1]): + out[int(i / f0)][int(j / f1)] += cropped[i][j] + return out / float(f0 * f1) -def upsample(image, factors, how = 'divide'): +def upsample(image, factors, method='divide'): - is0 = image.shape[0] - is1 = image.shape[1] - f0 = factors[0] - f1 = factors[1] + is0 = image.shape[0] + is1 = image.shape[1] + f0 = factors[0] + f1 = factors[1] - if (f0 - int(f0) != 0) or (f1 - int(f1) != 0): - return "Use resample for non-integer upsampling" - out = np.zeros((f0 * image.shape[0], f1 * image.shape[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])) - if how == 'divide': - for i in range(out.shape[0]): - for j in range(out.shape[1]): - out[i][j] = (image[i / f0][j / f1]) / float(f0 * f1) - return out + if method == 'divide': + for i in range(out.shape[0]): + for j in range(out.shape[1]): + out[i][j] = (image[i / f0][j / f1]) + return out / float(f0 * f1) - if how == 'uniform': - for i in range(out.shape[0]): - for j in range(out.shape[1]): - out[i][j] = (image[i / f0][j / f1]) - return out + if method == 'uniform': + for i in range(out.shape[0]): + for j in range(out.shape[1]): + out[i][j] = (image[i / f0][j / f1]) + return out