python - 如何使用 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)
- 这是正确的方法吗?
- 我怎样才能控制这里的噪音量?
解决方案
推荐阅读
- r - 警告:aggregate.data.frame 中的错误:参数必须具有相同的长度堆栈跟踪(最里面的第一个)
- angularjs - 找不到我的退货被序列化两次的原因
- java - 我的类实现了一个接口,但没有覆盖它的抽象方法。为什么 Eclipse 仍然可以毫无问题地编译它?
- python - 使用正则表达式检查数据集是否存在,而无需先读取所有数据集的路径
- android - 图像视图的圆形背景
- javascript - 实现节点进程之间的请求-响应交换
- python - 按时差阈值匹配数据帧
- c++ - 对半透明对象实施深度测试
- sql-server - 在行中重复值
- android - CollapsingToolbar 和 constraintLayout