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