4.3.1 高斯噪声和椒盐噪声
4.3.1 高斯噪声和椒盐噪声
高斯噪声(gaussian noise)是指其概率密度函数服从高斯分布的一类噪声。椒盐噪声(salt-and-pepper noise)是指两种噪声,一种是盐噪声(salt noise),另一种是胡椒噪声(pepper noise)。盐噪声为白色,胡椒噪声为黑色。一般两种噪声同时出现,呈现在图像上就是黑白杂点。
对图像增加噪声的方法很多,这里介绍如何使用skimage库进行噪声叠加,skimage库的安装方法为:
pip install scikit-image
skimage库提供了skimage.util.random_noise函数用于增加噪声。
skimage.util.random_noise(image, mode= ’gaussian ’, seed=none, clip=true,**kwargs)
其中主要参数的含义如下:
? image:原始图像。
? mode:叠加噪声的类型,常用的类型包括gaussian、salt、pepper和s & p。
? seed:随机数种子。
? clip:表示是否截断超出范围的值,默认为true。
? amount:噪声点的比例,默认为0.05。
当使用高斯噪声时,还可以设置均值mean和方差var,默认均值为0,方差为0.01。
以高斯噪声为例,如图4-15所示,分为四个子图,第一个子图为原始图像,第二至四个子图分别叠加了mean为0,var为0.01、0.04和0.09的高斯噪声。可见当mean相同时,var越大噪声越明显。这里需要指出的是,skimage在random_noise内部实现时,已经将图像归一化到(0,1),生成的图像也归一化到(0,1),因此设置mean和var值时要考虑这点。
img=cv2.imread("../picture/bigpig.jpeg")
img=cv2.cvtcolor(img, cv2.color_bgr2rgb)
img1=img.copy()
img2=skimage.util.random_noise(img2, mode="gaussian", seed=none,
clip=true,mean=0,var=0.01)
img3=skimage.util.random_noise(img3, mode="gaussian", seed=none,
clip=true,mean=0,var=0.04)
img4=skimage.util.random_noise(img4, mode="gaussian", seed=none,
clip=true,mean=0,var=0.09)
增加椒盐噪声时更加灵活一些,可以设置只增加白色的盐噪声,或者只增加黑色的胡椒噪声,或者两者都增加。
img=cv2.imread("../picture/bigpig.jpeg")
img=cv2.cvtcolor(img, cv2.color_bgr2rgb)
img1=img.copy()
img2=skimage.util.random_noise(img2, mode="salt", seed=none, clip=true)
img3=skimage.util.random_noise(img3, mode="pepper", seed=none, clip=true)
img4=skimage.util.random_noise(img4, mode="s&p", seed=none, clip=true)
图4-15 图像增加高斯噪声示例
高斯噪声(gaussian noise)是指其概率密度函数服从高斯分布的一类噪声。椒盐噪声(salt-and-pepper noise)是指两种噪声,一种是盐噪声(salt noise),另一种是胡椒噪声(pepper noise)。盐噪声为白色,胡椒噪声为黑色。一般两种噪声同时出现,呈现在图像上就是黑白杂点。
对图像增加噪声的方法很多,这里介绍如何使用skimage库进行噪声叠加,skimage库的安装方法为:
pip install scikit-image
skimage库提供了skimage.util.random_noise函数用于增加噪声。
skimage.util.random_noise(image, mode= ’gaussian ’, seed=none, clip=true,**kwargs)
其中主要参数的含义如下:
? image:原始图像。
? mode:叠加噪声的类型,常用的类型包括gaussian、salt、pepper和s & p。
? seed:随机数种子。
? clip:表示是否截断超出范围的值,默认为true。
? amount:噪声点的比例,默认为0.05。
当使用高斯噪声时,还可以设置均值mean和方差var,默认均值为0,方差为0.01。
以高斯噪声为例,如图4-15所示,分为四个子图,第一个子图为原始图像,第二至四个子图分别叠加了mean为0,var为0.01、0.04和0.09的高斯噪声。可见当mean相同时,var越大噪声越明显。这里需要指出的是,skimage在random_noise内部实现时,已经将图像归一化到(0,1),生成的图像也归一化到(0,1),因此设置mean和var值时要考虑这点。
img=cv2.imread("../picture/bigpig.jpeg")
img=cv2.cvtcolor(img, cv2.color_bgr2rgb)
img1=img.copy()
img2=skimage.util.random_noise(img2, mode="gaussian", seed=none,
clip=true,mean=0,var=0.01)
img3=skimage.util.random_noise(img3, mode="gaussian", seed=none,
clip=true,mean=0,var=0.04)
img4=skimage.util.random_noise(img4, mode="gaussian", seed=none,
clip=true,mean=0,var=0.09)
增加椒盐噪声时更加灵活一些,可以设置只增加白色的盐噪声,或者只增加黑色的胡椒噪声,或者两者都增加。
img=cv2.imread("../picture/bigpig.jpeg")
img=cv2.cvtcolor(img, cv2.color_bgr2rgb)
img1=img.copy()
img2=skimage.util.random_noise(img2, mode="salt", seed=none, clip=true)
img3=skimage.util.random_noise(img3, mode="pepper", seed=none, clip=true)
img4=skimage.util.random_noise(img4, mode="s&p", seed=none, clip=true)
图4-15 图像增加高斯噪声示例