ShotNoise
Targets:
image
Image Types:uint8, float32
Shot noise (Poisson) in linear light space. Sensor-realistic; use for low-light or photon-limited imaging and camera simulation.
Simulates photon-counting: convert to linear space (gamma removed), treat pixel values as expected photon counts, sample from Poisson, convert back. Variance equals mean in linear space; brighter regions have more absolute noise, less relative.
Arguments
scale_rangetuple[float, float]
[0.1,0.3]
Reciprocal of photons per unit intensity. Higher = more noise. e.g. 0.1 ≈ low, 1.0 ≈ moderate, 10.0 ≈ high. Default: (0.1, 0.3).
pfloat
0.5
Probability of applying the transform. Default: 0.5.
Examples
>>> import numpy as np
>>> import albumentations as A
>>> image = np.random.randint(0, 256, (100, 100, 3), dtype=np.uint8)
>>>
>>> transform = A.ShotNoise(scale_range=(0.1, 1.0), p=1.0)
>>> noisy_image = transform(image=image)["image"]Notes
- Pipeline: linear space (gamma = 2.2), Poisson sample, back to display space.
- Preserves mean intensity. Per-pixel, per-channel independent.
See Also
- GaussNoise: i.i.d. Gaussian noise; use for sensor or transmission noise.
- FilmGrain: Luminance-dependent, spatially correlated (film-like) noise.
References
- Shot noisehttps://en.wikipedia.org/wiki/Shot_noise
- Original paperhttps://doi.org/10.1002/andp.19183622304 (Schottky, 1918)
- Poisson processhttps://en.wikipedia.org/wiki/Poisson_point_process
- Gamma correctionhttps://en.wikipedia.org/wiki/Gamma_correction