我有一些图像需要添加增量的泊松噪声才能更全面地分析它们。我知道你可以在MATLAB中做到这一点,但你如何去做Python?到目前为止搜索没有任何结果。将泊松噪声添加到图像
回答
如果numpy/scipy可供您使用,那么以下内容应该有所帮助。我建议你将数组强制浮点以进行中间计算,然后将其转换回uint8用于输出/显示目的。由于泊松噪声全部> = 0,因此您将需要决定如何处理数组溢出问题,因为您将其转换回uint8。您可以根据自己的目标进行缩放或截断。
filename = 'myimage.png'
imagea = (scipy.misc.imread(filename)).astype(float)
poissonNoise = numpy.random.poisson(50,imagea.shape).astype(float)
noisyImage = imagea + poissonNoise
其实保罗的答案没有道理。
泊松噪声取决于信号!并且使用由他提供的这些命令,稍后添加到图像的噪声不依赖于信号。
为了使依赖于信号您shold图像传递到与NumPy的泊松功能:
filename = 'myimage.png'
img = (scipy.misc.imread(filename)).astype(float)
noise_mask = numpy.random.poisson(img)
noisy_img = img + noise_mask
赫尔德的答案是正确的。我只想添加一个事实,即泊松噪声不是加性的,不能将其添加为高斯噪声。
取决于你想要达到的目标,这里是一些建议:
模拟低光噪声图像(如PEAK = 1,这将是很大的声响)
import numpy as np image = read_image("YOUR_IMAGE") # need a rescale to be more realistic noisy = np.random.poisson(image/255.0 * PEAK)/PEAK * 255 # noisy image
在干净的图像
import numpy as np image = read_image("YOUR_IMAGE") noisemap = create_noisemap() noisy = image + np.random.poisson(noisemap)
然后你可以裁剪的结果为0 - 255如果你喜欢(我使用PIL,所以我用255而不是1)。
这应该是正确的答案。 –
泊松分布生成整数。如果图像是范围为[0,1]的np.float数组,则正确的代码应为'noisy = np.random.poisson(image * 255.0 * PEAK)/ PEAK/255' – misssprite
- 1. 如何添加泊松噪声和高斯噪声?
- 2. Image双精度图像中的泊松噪声(散粒噪声)
- 3. 将泊松噪声添加到拟合文件
- 4. 随机泊松噪声
- 5. 泊松噪声去除,MATLAB
- 6. 将RMS噪声添加到图像
- 7. 添加具有高斯分布的泊松噪声
- 8. 向图像添加噪声
- 9. 如何在特定方差的图像中插入泊松和斑点噪声?
- 10. 创建噪声图像(随机噪声)
- 11. 叠加泊松分布到直方图
- 12. R:如何将噪声簇添加到DBSCAN图中
- 13. 如何将添加噪声添加到数字序列C#中?
- 14. 将噪声添加到输入图像时,Tensorflow损失发生变化
- 15. 图像噪声过滤
- 16. 阈值图像和噪声
- 17. 噪声图像压缩
- 18. 试图用噪音,numpy和图像创建噪声图像
- 19. 手动添加图像中的脉冲噪声
- 20. 将远程标记添加到泊坞窗图像
- 21. 将标准CA根添加到busybox泊坞窗图像
- 22. 从图像中去除胡椒噪声和盐噪声
- 23. 鉴于噪声分布情况,噪声破坏图像?
- 24. 如何为图像添加噪点?
- 25. 如何将使用的基础(FROM)图像添加到泊坞窗图像
- 26. 通过FFT将1000Hz噪声添加到wav文件中C
- 27. 如何使用python将噪声添加到wav文件?
- 28. 如何使用NumPy将单色噪声添加到PyGame表面?
- 29. 将随机噪声添加到变量tensorflow中
- 30. 如何将噪声添加到PCM原始数据中
你的回答很有意义。虽然你如何处理这导致的饱和? –
那么,在这种情况下,您必须自己处理饱和度,将负值设置为0,并设置为图像位数的最高值,然后将这些值设置为最高值。 – Helder
谢谢。我通过饱和前5%的像素来处理它 –