import numpy
import skimage
import skimage.io
img = skimage.io.imread('uY173.png')
import skimage.transform
img50_order0 = skimage.img_as_ubyte(skimage.transform.rescale(img, 0.5,
    order=0, clip=True))
img50_order1 = skimage.img_as_ubyte(skimage.transform.rescale(img, 0.5,
    order=1, clip=True))
img50_lm = numpy.rint(skimage.transform.downscale_local_mean(img, (2, 2, 1),
    clip=True))
import scipy.ndimage.interpolation
img50_nd = scipy.ndimage.interpolation.zoom(img, (0.5, 0.5, 1))
plot(img50_order0[(50), :, (1)])
plot(img50_order1[(50), :, (1)])
plot(img50_lm[(50), :, (1)])
plot(img50_nd[(50), :, (1)])
Image gradients become inaccurate when downscaling using a variety of different methods