Why does MATLAB implement poisson noise this way?

1 view (last 30 days)
When you use imnoise to add poisson noise to an image,
If I is double precision,
then input pixel values are interpreted as means of Poisson
distributions scaled up by 1e12. For example, if an input pixel has
the value 5.5e-12, then the corresponding output pixel will be
generated from a Poisson distribution with mean of 5.5 and then scaled
back down by 1e12. If I is single precision, the scale factor used is
1e6. If I is uint8 or uint16, then input pixel values are used
directly without scaling. For example, if a pixel in a uint8 input
has the value 10, then the corresponding output pixel will be
generated from a Poisson distribution with mean 10.
The above is quoted from 'help imnoise'. I've seen people getting confused over this. They used double precision data and added poisson noise using imnoise without scaling the data with 1e-12, then they got a perfectly clean image. (<http://www.mathworks.com/matlabcentral/newsreader/view_thread/242444>).
My question is, why did MATLAB choose to implement Poisson noise like this? Is there some numerical reason? This is just out of curiosity of course. But it just bugs me......

Answers (0)

Community Treasure Hunt

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

Start Hunting!