使用Python-OpenCV向图片添加噪声的实现(高斯噪声,椒盐噪声)

  

在matlab中,存在执行直接得函数来添加高斯噪声和椒盐噪声.Python-OpenCV中虽然不存在直接得函数,但是很容易使用相关的函数来实现。

  

代码:         进口numpy np   进口随机   进口cv2      概率def sp_noise(图片):   “‘   添加椒盐噪声   问题:噪声比例   “‘   输出=np.zeros (image.shape np.uint8)   用力推=1 -概率   因为我在范围(image.shape [0]):   j的范围(image.shape [1]):   rdn=random.random ()   如果rdn & lt;问题提出:   输出[我][j]=0   elif rdn祝辞刺:   输出[我][j]=255   其他:   图像输出[我][j]=[我][j]   返回输出         def gasuss_noise(图片,意味着=0,var=0.001):   “‘   添加高斯噪声   意思是:均值   var:方差   “‘   形象=np。数组(图片/255,dtype=浮动)   噪音=np.random。正常(var * * 0.5, image.shape)=图像+噪音   如果out.min () & lt;0:   low_clip=1。   其他:   low_clip=0。=np。剪辑(low_clip, 1.0)=np.uint8 (* 255)   #简历。imshow (“gasuss”)   返回了      之前      

可见,只要我们得到满足某个分布的多维数组,就能作为噪声添加到图片中。

  

例如:         进口cv2   进口numpy np      在在在我=np.empty ((5,5), np.uint8) #需要预先分配输入图像   在在在即时通讯   阵列([[248、168、58、2、1],#未初始化的内存是随机的,太& # 63;乐趣,)   [0,100,2 0 101),   [0,0,106 2 0],   [131年2 0 90 3),   100年[0,1 0 83]],dtype=uint8)   在在在我=np.zeros ((5,5), np.uint8) #现在严重。   在在在即时通讯   阵列([[0,0,0,0,0),   (0,0,0,0,0),   (0,0,0,0,0),   (0,0,0,0,0),   (0,0,0,0,0]],dtype=uint8)   在在在cv2.randn (im(0)(99) #正常   阵列([[0 76 0 129 0],   [0,0,0,188,27岁),   152年[0,0,0,0),   (0,0,134,79,0],   [0,181,128,0]],dtype=uint8)   在在在cv2.randu (im(0)(99) #制服   阵列([[19日,53岁,2、86、82),   (86,73,64,78]。   [34,20,62、80、7],   [24日,92年,37岁,60岁,72),   [33 40岁,12日,27日,18]],dtype=uint8)      之前      

然后再:

        img=?   噪音=?      形象=img +噪音   之前      

  

1, https://stackoverflow.com/questions/22937589/how-to-add-noise-gaussian-salt-and-pepper-etc-to-image-in-python-with-opencv

  

2, https://stackoverflow.com/questions/14435632/impulse-gaussian-and-salt-and-pepper-noise-with-opencv
  

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

使用Python-OpenCV向图片添加噪声的实现(高斯噪声,椒盐噪声)