from fastai.vision.image import TfmPixel import random #Contributed by Rani Horev. Thank you! def _noisify(x, pct_pixels_min:float=0.001, pct_pixels_max:float=0.4, noise_range:int=30): if noise_range > 255 or noise_range < 0: raise Exception('noise_range must be between 0 and 255, inclusively.') h,w = x.shape[1:] img_size = h * w mult = 10000.0 pct_pixels = random.randrange(int(pct_pixels_min*mult), int(pct_pixels_max*mult))/mult noise_count = int(img_size * pct_pixels) for ii in range(noise_count): yy = random.randrange(h) xx = random.randrange(w) noise = random.randrange(-noise_range, noise_range)/255.0 x[:,yy,xx].add_(noise) return x noisify = TfmPixel(_noisify)