首页 > 解决方案 > 如何使用 numpy 在图像中添加泊松噪声?

问题描述

我正在编写一个代码来通过在其中注入噪声来增强图像。我得到了高斯、斑点、盐和胡椒等的代码,但我找不到如何添加泊松噪声?有些人使用的是 atimage + mask但问题是我认为它不像高斯噪声那样在本质上是加法的。我认为做下面的事情没有任何意义:

noise_mask = numpy.random.poisson(img)
noisy_img = img + noise_mask

但是我可以对Gaussian噪声做同样的事情,我可以通过改变标准偏差来控制噪声量(我也可以改变平均值吗?):

def gauss(img): # img is numpy array image
    gauss = np.random.normal(0,1,img.size) # mean=0, std=1
    gauss = gauss.reshape(img.shape[0],img.shape[1],img.shape[2])
    return img + gauss

所以我找到了一个代码Poisson

def poisson(img):
    vals = len(np.unique(img))
    vals = 2 ** np.ceil(np.log2(vals))
    return np.random.poisson(img * vals) / float(vals)
  1. 这是正确的方法吗?
  2. 我怎样才能控制这里的噪音量?

标签: pythonnumpyopencvcomputer-visionscikit-image

解决方案


推荐阅读