python手写给图像加椒盐噪声和高斯噪声

此文记录自己在做图像数据增强给图像加噪时遇到的一些情况。

椒盐噪音:简单点说就是在图像中随机加一些白点或者黑点。

from skimage import io
import random
import numpy as np

def salt_and_pepper_noise(img, proportion=0.05):
    noise_img =img
    height,width =noise_img.shape[0],noise_img.shape[1]
    num = int(height*width*proportion)#多少个像素点添加椒盐噪声
    for i in range(num):
        w = random.randint(0,width-1)
        h = random.randint(0,height-1)
        if random.randint(0,1) ==0:
            noise_img[h,w] =0
        else:
            noise_img[h,w] = 255
    return noise_img
if __name__ == '__main__':
    img =io.imread(r"C:\work\data\he\guangtou\0000709.jpg")
    noise_img = salt_and_pepper_noise(img)
    io.imshow(noise_img)
    io.show()

效果图:

 python手写给图像加椒盐噪声和高斯噪声_第1张图片python手写给图像加椒盐噪声和高斯噪声_第2张图片

   

高斯噪音:给每一个像素点加一个随机的符合高斯分布的值。

from skimage import io
import random
import numpy as np

def gauss_noise(image):
    img = image.astype(np.int16)#此步是为了避免像素点小于0,大于255的情况
    mu =0
    sigma = 10
    for i in range(img.shape[0]):
        for j in range(img.shape[1]):
            for k in range(img.shape[2]):
                img[i,j,k] = img[i,j,k] +random.gauss(mu=mu,sigma=sigma)
    img[img>255] = 255
    img[img<0] = 0
    img = img.astype(np.uint8)
    return img
if __name__ == '__main__':
    img =io.imread(r"C:\work\data\he\guangtou\0000709.jpg")
    # noise_img = salt_and_pepper_noise(img)
    gauss_img = gauss_noise(img)
    io.imshow(gauss_img)
    io.show()

python手写给图像加椒盐噪声和高斯噪声_第3张图片python手写给图像加椒盐噪声和高斯噪声_第4张图片

 

 

你可能感兴趣的:(python手写给图像加椒盐噪声和高斯噪声)