在Python中无所事事?

use*_*572 1 python noise

我尝试在应用低通滤波器后向图像添加白噪声。我知道如何在matlab中执行此操作,但不知道如何调用才能在python中工作。

import matplotlib.pyplot as plt
import numpy as np
import scipy.misc
from scipy import ndimage
import Image 

J = imnoise(im,'salt & pepper',0.02);
figure.imshow(J)
Run Code Online (Sandbox Code Playgroud)

我还需要导入什么?还是有另一种增加噪音的方法?

yan*_*jie 5

scikit-image提供了random_noise类似于imnoiseMATLAB中的功能。

skimage.util.random_noise(image, mode='gaussian', seed=None, clip=True, **kwargs)
Run Code Online (Sandbox Code Playgroud)

它支持以下模式:

“高斯”高斯分布的加性噪声​​。

'localvar'高斯分布的加性噪声​​,在图像的每个点具有指定的局部方差

数据产生的“泊松”泊松分布噪声。

'salt'用1替换随机像素。

'pepper'用0替换随机像素。

's&p'用0或1替换随机像素。

“斑点”乘积噪声,使用out = image + n * image,其中n是具有指定均值和方差的均匀噪声。

请注意,与imnoiseMATLAB的不同之处在于此函数的输出始终是浮点图像。

uint8例如,如果输入图像是灰度图像,则首先将其转换为浮动图像,但不会将输出图像转换为与输入图像相同的类。

因此,如果您关心图像的类别,则应该自己转换输出,例如使用skimage.img_as_ubyte