Adding poisson noise to an image

后端 未结 5 616
忘了有多久
忘了有多久 2021-01-06 09:55

I have some images that I need to add incremental amounts of Poisson noise to in order to more thoroughly analyze them. I know you can do this in MATLAB, but how do you go a

5条回答
  •  隐瞒了意图╮
    2021-01-06 10:34

    The answer of Helder is correct. I just want to add the fact that Poisson noise is not additive and you can not add it as Gaussian noise.

    Depend on what you want to achieve, here is some suggestions:

    • Simulate a low-light noisy image (if PEAK = 1, it will be really noisy)

      import numpy as np
      image = read_image("YOUR_IMAGE")  # need a rescale to be more realistic
      noisy = np.random.poisson(image / 255.0 * PEAK) / PEAK * 255  # noisy image
      
    • Add a noise layer on top of the clean image

      import numpy as np
      image = read_image("YOUR_IMAGE") 
      noisemap = create_noisemap() 
      noisy = image + np.random.poisson(noisemap)  
      

    Then you can crop the result to 0 - 255 if you like (I use PIL so I use 255 instead of 1).

提交回复
热议问题