Need help or advice ? Come to the Icy club ! - Every Wenesday morning from 9h30 to 12h30 - Francois Jacob Building - Main hall - Pasteur

User reviews

5 star
4 star
3 star
2 star
1 star
average rating: 5

Please log-in to post a review
Thibault Lagache
08 Nov 2013 12:45
very useful!

Noise generator

by Yoann Le Montagner

Add some noise with customizable characteristics (Gaussian noise, Poisson noise, salt & pepper, etc.) to a sequence. This plugin is useful to test and validate the denoising and restoration algorithms implemented in Icy.

Publication Id
See technical details
View complete changelog


This plugin simulates different types of noise on a sequences, with customizable characteristics. This could be useful to test and validate the denoising and restoration algorithms that are implemented in Icy. Currently, three noise models are implemented:

  • white additive Gaussian noise,
  • Poisson noise (i.e. photon counting noise),
  • salt & pepper noise.

How each of these models relates the input clean sequence A and the output noisy sequence B is described below.

The features provided by this plugin can be accessed:

  • directly through the GUI (using a EzPlug interface),
  • through the protocol editor provided by the Protocols plugin,
  • from java (for plugin developers) or Javascript (using the Script Editor plugin): in these cases, see the documentation in the NoiseModel class for more details.

White additive Gaussian noise

1 parameter: sigma >= 0 (standard deviation of the Gaussian random variables).

This noise model enforces B = A + n, where n is a random sequence such that the samples n(x,y,z,t,c) are random independant variables following a Gaussian probability distribution of mean 0 and variance sigma^2.

Poisson noise

No parameter.

In this model, each output sample B(x,y,z,t,c) is generated from a Poisson random distribution of intensity A(x,y,z,t,c), which is supposed to be >=0. If A(x,y,z,t,c) < 0, then B(x,y,z,t,c) is set to NaN.

Salt & pepper noise

3 parameters:

  • intensity, that must satisfy 0 <= intensity <= 1,
  • lowerBound and upperBound, with lowerBound <= upperBound.

In this model, each output sample B(x,y,z,t,c):

  • either is let unchanged (i.e. is set to A(x,y,z,t,c)), with probability intensity,
  • or takes a value that is selected in a random uniform manner between lowerBound and upperBound, with probability 1-intensity.