[toc]
介绍
在有些情况下,会因为研究需要所以用一些增加了噪声的图片
-
文件目录树
│ GaussianNoise.py #高斯噪声 │ SpicedSaltNoise.py #盐椒噪声 │ ├─images #将所有需要处理的所有图片该文件夹内 │ test.jpg #原图 │ └─noise_img ├─Gussian_noise_img #存放加入高斯噪声图像的文件夹 │ Gussian_noise_test.jpg │ └─salt-and-pepper_noise_img #存放加入盐椒噪声图像的文件夹 salt-and-pepper_noise_test.jpg
高斯噪声
# 增加高斯噪声
from skimage import io
import random
import numpy as np
import os
import matplotlib
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__':
# 读取images文件夹内的图片名称
images_list = os.listdir('images/')
for i in range(0, len(images_list), 1):
img = io.imread(r"images/"+images_list[i])
# noise_img = salt_and_pepper_noise(img)
gauss_img = gauss_noise(img)
# io.imshow(gauss_img)
# io.show()
if (os.path.exists('noise_img\\Gussian_noise_img') == False):
os.mkdir("noise_img\\Gussian_noise_img") #此步骤用于判断有无存放噪声图片的文件夹,没有则创建
matplotlib.image.imsave("noise_img/Gussian_noise_img/"+"Gussian_noise_" + images_list[i], gauss_img) #numpy数组转换为图片保存
盐椒噪声
#增加椒盐噪声
from skimage import io
import random
import numpy as np
import os
import matplotlib
def salt_and_pepper_noise(img, proportion=0.10): #此处数值设置椒盐噪声强度
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__':
images_list = os.listdir('images/')
for i in range(0, len(images_list), 1):
img = io.imread(r"images/"+images_list[i])
noise_img = salt_and_pepper_noise(img)
# io.imshow(noise_img)
# io.show()
if (os.path.exists('noise_img\\salt-and-pepper_noise_img') == False):
os.mkdir("noise_img\\salt-and-pepper_noise_img") #此步骤用于判断有无存放噪声图片的文件夹,没有则创建
matplotlib.image.imsave("noise_img/salt-and-pepper_noise_img/"+"salt-and-pepper_noise_" + images_list[i], noise_img) #numpy数组转换为图片保存