augs.py 750 B

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