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
どんな助けや洞察も大歓迎です。