我正在尝试使用numpy
作为Pytorch
转换器来实现将Poisson噪声添加到灰度图像上,但是到目前为止,我的结果非常令人失望。这是我的各种实现方式,其结果范围从看不到可见变化到只看到没有图像的噪声。正确的方法是什么?
class Noise(object):
def __init__(self, noise_type):
self.noise_type = noise_type
def __call__(self, sample):
noise = np.random.poisson(1, sample.shape)
return sample + noise
但是据我所知,泊松噪声不能简单地添加到图像中,这就是为什么我在这里看到的只是没有原始灰度图像的噪声(类似于电视静态图像)。
以下版本的代码不会在图像中产生可见的变化,这使我相信这是某种缩放问题,因为在泊松噪声中,噪声是相对于像素值添加的。
vals = len(np.unique(sample))
vals = 2 ** np.ceil(np.log2(vals))
noisy = np.random.poisson(sample * vals) / float(vals)
return noisy
任何帮助或见识将不胜感激。