AWGN for a grayscale image

Hello everyone,
I need to add AWGN to a grayscale image for the purpose of denoising. Till now I was using "imnoise" to add the gaussian noise but somewhere I doubt or I am confused whether I am adding correct noise or not.
Is this the correct method to add AWGN in an image? If not, please tell me how to add this kind of noise.
Thanking you in advance
Vivek Singh Bhadouria
India

 Accepted Answer

Rick Rosson
Rick Rosson on 31 Aug 2011
Yes, imnoise is the right function to use.
Why are you concerned that it might not be the correct function to use?
Rick

1 Comment

Dear Rick,
There is no problem in using imnoise function. Actually, I am interested in adding "Additive gaussian noise" and "multiplicative gaussian noise" to an image but I am not fully sure about the nature of the gaussian noise being added by imnoise function i.e. its behavior is additive or multiplicative.
Is there any way out to handle this?
Vivek Bhadouria

Sign in to comment.

More Answers (1)

Hi, The answer is both.
The Gaussian noise is additive if you use the 'Gaussian' option.
J = imnoise(I,'gaussian',M,V)
The Gaussian noise is multiplicative if you use 'speckle'
J = imnoise(I,'speckle',V)
Hope that helps, Wayne

4 Comments

Hello,
Both of these concept comes from imnoise but while reading the details of imnoise function in MATLAB help, I found that " J = imnoise(I,'gaussian',M,V)" adds gaussian noise but no nature is defined (multiplicative or additive so how one can be sure for this as there is no documentation support for this fact).
As far as " J = imnoise(I,'speckle',V)" is concerned, it is clearly written that this command generates multiplicative noise but of "uniformly distributed random nature" not of gaussian nature.
Please help what to do?
Thanking You
Vivek
When it says it "adds Gaussian noise" that is a pretty strong indication that it is additive, not multiplicative. I've not heard the term "nature" in relation to that so I'm not sure why they'd need to define that in addition to saying it adds - that's your term.
Sorry Vivek, you're right. I misread the help. The multiplicative option does use rand()
I'm not sure why they call it "speckle." At least it appears to have nothing to do with speckle in the laser imaging sense. My textbook on statistical optics says "Under the assumptions of the given statistical model, the speckle intensity follows a negative exponential law, and speckle phase follows a uniform law." The law (equation) it gives for laser speckle intensity distribution is p(i) = sigma^(-2) * exp(-i / sigma^2). This is definitely different than you'd get from MATLAB which says "adds multiplicative noise to the image I, using the equation J = I+n*I, where n is uniformly distributed random noise with mean 0 and variance v." So MATLAB's speckle noise is not laser speckle noise - it uses some other definition of speckle.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!