Python+opencv3对图像添加高斯噪声和椒盐噪声

最近开始学习用Python+opencv3,下面是在学习过程中本人的一点学习笔记:
对图像做如下处理:
1) 对图像做灰度变换
2) 向图像添加10%的高斯噪声
3) 向图像添加10%的椒盐噪声

代码如下:

# -*- coding: utf-8 -*-

from numpy import *
from scipy import * 
import numpy as np 
import cv2
#定义添加椒盐噪声的函数
def SaltAndPepper(src,percetage):  
    SP_NoiseImg=src 
    SP_NoiseNum=int(percetage*src.shape[0]*src.shape[1]) 
    for i in range(SP_NoiseNum): 
        randX=random.random_integers(0,src.shape[0]-1) 
        randY=random.random_integers(0,src.shape[1]-1) 
        if random.random_integers(0,1)==0: 
            SP_NoiseImg[randX,randY]=0 
        else: 
            SP_NoiseImg[randX,randY]=255 
    return SP_NoiseImg 
#定义添加高斯噪声的函数 
def addGaussianNoise(image,percetage): 
    G_Noiseimg = image 
    G_NoiseNum=int(percetage*image.shape[0]*image.shape[1]) 
    for i in range(G_NoiseNum): 
        temp_x = np.random.randint(20,40) 
        temp_y = np.random.randint(20,40) 
        G_Noiseimg[temp_x][temp_y] = 255 
    return G_Noiseimg
 
 
if __name__ == "__main__":
    srcImage = cv2.imread("lena.jpg") 
    cv2.namedWindow("Original image") 
    cv2.imshow("Original image", srcImage) 
    grayImage = cv2.cvtColor(srcImage,cv2.COLOR_BGR2GRAY) #灰度变换 
    cv2.imshow("grayimage", grayImage)
    
    
    gauss_noiseImage = addGaussianNoise(grayImage,0.01) #添加10%的高斯噪声 
    cv2.imshow("Add_GaussianNoise Image",gauss_noiseImage) 
    cv2.imwrite("Glena.jpg ",gauss_noiseImage)
    
    
    SaltAndPepper_noiseImage = SaltAndPepper(grayImage,0.1) #再添加10%的椒盐噪声
    cv2.imshow("Add_SaltAndPepperNoise Image",SaltAndPepper_noiseImage) 
    
    
    cv2.waitKey(0) 
    cv2.destroyAllWindows() 


猜你喜欢

转载自blog.csdn.net/qq_40716944/article/details/80348353