imnoise
Add noise to image
Syntax
Description
adds zero-mean, Gaussian white noise. The local variance of the noise,
J
= imnoise(I
,"localvar",intensity_map
,var_local
)var_local
, is a function of the image intensity values
in I
. The mapping of image intensity values to noise
variance is specified by the vector intensity_map
.
generates Poisson noise from the data instead of adding artificial noise to the
data. See Algorithms for more
information.J
= imnoise(I
,"poisson")
adds multiplicative noise with variance J
= imnoise(I
,"speckle",var_speckle
)var_speckle
.
Examples
Input Arguments
Output Arguments
Algorithms
The mean and variance parameters for
"gaussian"
,"localvar"
, and"speckle"
noise types are always specified as if the image were of classdouble
in the range [0, 1]. If the input image is a different class, theimnoise
function converts the image todouble
, adds noise according to the specified type and parameters, clips pixel values to the range [0, 1], and then converts the noisy image back to the same class as the input.The Poisson distribution depends on the data type of input image
I
:If
I
is double precision, then input pixel values are interpreted as means of Poisson distributions scaled up by1e12
. For example, if an input pixel has the value5.5e-12
, then the corresponding output pixel will be generated from a Poisson distribution with mean of 5.5 and then scaled down by1e12
.If
I
is single precision, the scale factor used is1e6
.If
I
isuint8
oruint16
, then input pixel values are used directly without scaling. For example, if a pixel in auint8
input has the value 10, then the corresponding output pixel will be generated from a Poisson distribution with mean 10.
To add
"salt & pepper"
noise with densityd
to an image,imnoise
first assigns each pixel a random probability value from a standard uniform distribution on the open interval (0, 1).For pixels with probability value in the range (0,
d
/2), the pixel value is set to0
. The number of pixels that are set to0
is approximatelyd*numel(I)/2
.For pixels with probability value in the range [
d
/2,d
), the pixel value is set to the maximum value of the image data type. The number of pixels that are set to the maximum value is approximatelyd*numel(I)/2
.For pixels with probability value in the range [
d
, 1), the pixel value is unchanged.