In [1]:
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

In [2]:
im = plt.imread('testim3.png')
plt.imshow(im)


Out[2]:
<matplotlib.image.AxesImage at 0x7e12828>

In [3]:
def contrast_scaling(im, addNoise=False):
    im2 = im + np.random.normal(0, 0.25, im.shape) if addNoise else im
    rmin, rmax = np.min(im, axis=(0, 1)), np.max(im, axis=(0, 1))
    return (im2 - rmin) / (rmax - rmin)
    
plt.imshow(contrast_scaling(im, addNoise=True))


Out[3]:
<matplotlib.image.AxesImage at 0x764f9e8>

In [4]:
K = 64
im2 = np.zeros_like(im)
for i in range(K):
    im2 += contrast_scaling(im, addNoise=True)
plt.imshow(contrast_scaling(im2/K))


Out[4]:
<matplotlib.image.AxesImage at 0x81ba630>