MATLAB Answers


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)


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.


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.