multiplicative noise generate using randn

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)

 Risposta accettata

Image Analyst
Image Analyst il 17 Mar 2013
Modificato: Image Analyst il 17 Mar 2013
noiseOnlyImage = sd * randn(size(noiseFreeImage));
noisyImage = noiseFreeImage .* noiseOnlyImage;
% Cast to uint8 if you want.
imshow(noisyImage, []); % Use [] if it's a double image.

8 Commenti

is it called speckle noise?
It might be for radar but I'm nto sure if the PDF of radar noise is Gaussian. I know that the noise PDF of laser speckle is not Gaussian - it's an exponential decay, so no, your randn() noise does not work to simulate laser speckle.
noisyImage = noiseFreeImage .* noiseOnlyImage;
so above image is affected by multiplicative noise ,not a speckle
I didn't say that. Speckle can be a multiplicative noise. But speckle has a specific probability distribution function, which, for laser speckle, is not Gaussian.
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.

Accedi per commentare.

Più risposte (0)

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by