MATLAB Answers

0

multiplicative noise generate using randn

Asked by vipul utsav on 17 Mar 2013
Latest activity Commented on by Image Analyst
on 18 May 2018

I add additive '0' mean Gaussian noise to original image using

n=0+(sd)*randn(size(original image)) and i apply noise estimation algorithm to noisy image and i found additive noise.

If i needs to simulate noise estimation algorithm using multiplicative noise,how i generate noisy image with multiplicative noise? (only using 'randn' function, not using imnoise)

  0 Comments

Sign in to comment.

1 Answer

Answer by Image Analyst
on 17 Mar 2013
Edited by Image Analyst
on 17 Mar 2013
 Accepted Answer

noiseOnlyImage = sd * randn(size(noiseFreeImage));
noisyImage = noiseFreeImage .* noiseOnlyImage;
% Cast to uint8 if you want.
imshow(noisyImage, []);  % Use [] if it's a double image.

  8 Comments

The probability density function for laser speckle is

pdf = exp(-v/sigmaSquared) / sigmaSquared

from section 5.9 in book by Roy Frieden "Probability, Statistical Optics, and Data Testing". v is the intensity of the light. So you can see it's an exponential decay, not a Guassian because it depends on v not v^2.

what does sd mean? I see that it is not an inbuilt function. can someone explain this plss

sd is a variable that represents the standard deviation. It's something you assign a desired value to.

Sign in to comment.