Как добавить шум Пуассона к изображению в оттенках серого в Python, используя numpy? - PullRequest
1 голос
/ 22 сентября 2019

Я пытаюсь реализовать добавление пуассоновского шума к полутоновому изображению, используя numpy в качестве Pytorch трансформатора, но пока мои результаты были очень разочаровывающими.Вот мои различные реализации, результаты которых варьируются от видимых изменений до просмотра шума без изображения.Как правильно это сделать?

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

Буду признателен за любую помощь или понимание.

...