1

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

どんな助けや洞察も大歓迎です。

4

0 に答える 0