1234567891011121314151617181920212223242526272829 |
- import random
- from fastai.vision.image import TfmPixel
- # 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)
|