椒盐噪声

椒盐噪声椒盐噪声 图像噪声之椒盐噪声 Salt And Pepper Noise 概述 椒盐噪声 salt amp pepper noise 是数字图像的一个常见噪声 所谓椒盐 椒就是黑 盐就是白 椒盐噪声就是在图像上随机出现黑色白色的像素

大家好,我是讯享网,很高兴认识大家。

椒盐噪声

图像噪声之椒盐噪声(Salt And Pepper Noise)

概述:

椒盐噪声(salt & pepper noise)是数字图像的一个常见噪声,所谓椒盐,椒就是黑,盐就是白,椒盐噪声就是在图像上随机出现黑色白色的像素。椒盐噪声是一种因为信号脉冲强度引起的噪声,产生该噪声的算法也比较简单。

算法步骤:

我们使用信噪比(Signal NoiseRate)衡量图像噪声,

图象的信噪比应该等于信号与噪声的功率谱之比,但通常功率谱难以计算,有一种方法可以近似估计图象信噪比,即信号与噪声的方差之比。首先计算图象所有象素的局部方差,将局部方差的最大值认为是信号方差,最小值是噪声方差,求出它们的比值,再转成dB数,最后用经验公式修正。

如果是灰度图像的话,SNR=(洁净图片中的像素点的灰度值之和)/abs(噪声图片的灰度值之和-洁净图片中的灰度值之和)为该图像的信噪比。

给一副数字图像加上椒盐噪声的步骤如下:

  • (1)指定信噪比 SNR (其取值范围在[0, 1]之间)
  • (2)计算总像素数目 SP, 得到要加噪的像素数目 NP = SP * (1-SNR)
  • (3)随机获取要加噪的每个像素位置P(i, j)
  • (4)指定像素值为255或者0。
  • (5)重复3,4两个步骤完成所有像素的NP个像素
  • (6)输出加噪以后的图像

编程实例:

为简单起见,直接使用灰度图进行测试,彩色图的原理是相同的。

# -*- coding: utf-8 -*- from PIL import Image from pylab import * from numpy import* #读取图片,灰度化,并转为数组 img = im = array(Image.open('./source/test.jpg').convert('L')) #信噪比 SNR = 0.6 #计算总像素数目 SP, 得到要加噪的像素数目 NP = SP * (1-SNR) noiseNum=int((1- SNR)*img.shape[0]*img.shape[1]) #于随机位置将像素值随机指定为0或者255 for i in range(noiseNum): randX=random.random_integers(0,img.shape[0]-1) randY=random.random_integers(0,img.shape[1]-1) if random.random_integers(0,1)==0: img[randX,randY]=0 else: img[randX,randY]=255 #显示图像 gray() imshow(img) show() 

讯享网

运行结果:

原图


讯享网

这里写图片描述

SNR = 0.8

这里写图片描述

SNR = 0.6

这里写图片描述

SNR = 0.4

这里写图片描述

结语:

本篇博客主要介绍了椒盐噪声这种常见的图像噪声,希望对大家有所帮助~

小讯
上一篇 2025-01-04 16:45
下一篇 2025-01-17 11:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/12443.html