adding random noise to an image for N times
4 views (last 30 days)
Show older comments
Hello. I need to learn how to add random noise to an image, to repeat this operation N times and then to reveal the results for different values of N. Thanks for your valuable time.
0 Comments
Answers (2)
DGM
on 22 Nov 2021
In all likelihood, the loop can be avoided by simply choosing the appropriate parameters.
0 Comments
Bjorn Gustavsson
on 22 Nov 2021
The question is a bit too vague to be precisely answered. Image noise typically have some specific probability-distribution, possibly in addition to dicretization-noise.
Typically it is possible to model photon-counting statistics as a random-number from a Poisson-distribution where the expected value of the photon-count is the Poisson-parameter Lambda:
imagesc
D = get(get(gca,'Children'),'CData'); % Just to get us an example-image
D1 = poissrnd(D);
D2 = poissrnd(D);
D3 = poissrnd(D);
subplot(3,2,1)
imagesc(D),colorbar
subplot(3,2,2)
imagesc(D1),colorbar
subplot(3,2,4)
imagesc(D1+D2),colorbar
subplot(3,2,3)
imagesc((D1+D2)/2),colorbar
subplot(3,2,6)
imagesc(D1+D2+D3),colorbar
subplot(3,2,5)
imagesc((D1+D2+D3)/3),colorbar
It should be possible to gather some tendensies from this simple example. I also urge you to look at the distribution of the residuals, for example:
hist((D1(:)+D2(:)-D(:))./D(:),-3:0.01:3)
From there you can/should get the courage to use the central limit theorem (surely everyones favourite statistical theorem) to dare to approximate the random-noise from something as demanding as a Poisson-process to the simple addition of a zero-centred normal-distributed random number with the standard deviation of the square-root of the expected image intensity.
After that one might start to faff-about with discretization-noise - which should not be ignored with images with 8-bit depth.
HTH
0 Comments
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!