comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Poisson Noise
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Poisson Noise [message #75481] Fri, 11 March 2011 16:54 Go to next message
M. Katz is currently offline  M. Katz
Messages: 69
Registered: May 2005
Member
I'm wondering if anyone has a ready-made Poisson-noise simulator for
images that works in the following way.

Start with a simulated ideal image as input, where each pixel contains
a number of photons as the intensity. It could be integer or floating-
point. Then use a function P(img) to return a Poisson-noise-added
version of the image. The key is that noise at each pixel scales with
the intensity appropriately, and not uniformly.

For large numbers of photons, where the Poisson noise has an RMS of
Sqrt(N) and behaves like a Gaussian distribution, I could just add
noise to img1 like this

img2 = 0L > ROUND( img1 + RANDOMN(seed, Nx, Ny)*SQRT(img1) )

But for low photon numbers, this approximation isn't valid.

Thanks,
M.
Re: Poisson Noise [message #75641 is a reply to message #75481] Tue, 15 March 2011 07:28 Go to previous message
pgrigis is currently offline  pgrigis
Messages: 436
Registered: September 2007
Senior Member
On Mar 11, 8:54 pm, "M. Katz" <MKatz...@yahoo.com> wrote:
> I'm wondering if anyone has a ready-made Poisson-noise simulator for
> images that works in the following way.
>
> Start with a simulated ideal image as input, where each pixel contains
> a number of photons as the intensity. It could be integer or floating-
> point. Then use a function P(img) to return a Poisson-noise-added
> version of the image. The key is that noise at each pixel scales with
> the intensity appropriately, and not uniformly.
>
> For large numbers of photons, where the Poisson noise has an RMS of
> Sqrt(N) and behaves like a Gaussian distribution, I could just add
> noise to img1 like this
>
> img2 = 0L > ROUND( img1 + RANDOMN(seed, Nx, Ny)*SQRT(img1) )
>
> But for low photon numbers, this approximation isn't valid.
>
> Thanks,
> M.


IDL has a built-in way too:

a=randomu(seed,poisson=10.0)

Ciao,
Paolo
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Earth Symbol
Next Topic: contour overplotting

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 15:16:51 PDT 2025

Total time taken to generate the page: 0.00591 seconds