import argparse from PIL import Image from skimage import util, img_as_float, io import os def add_noise(img_path, img_dir): if img_dir == '': # 读取图像 img_org = Image.open(img_path) # 转换为 skimage 可操作的格式 img = img_as_float(img_org) image_gaussian = util.random_noise(img, mode="gaussian") # 加高斯噪声 image_sp = util.random_noise(img, mode="s&p") # 加椒盐噪声 # 存储文件到新的路径中,并修改文件名 io.imsave(str(img_path)[0:-4] + "_guassian.png", image_gaussian) io.imsave(str(img_path)[0:-4] + "_sp.png", image_sp) else: img_list = os.listdir(img_dir) for img_path in img_list: img_p = img_dir + '/' + img_path # 读取图像 img_org = Image.open(img_p) # 转换为 skimage 可操作的格式 img = img_as_float(img_org) image_gaussian = util.random_noise(img, mode="gaussian") # 加高斯噪声 image_sp = util.random_noise(img, mode="s&p") # 加椒盐噪声 # 存储文件到新的路径中,并修改文件名 io.imsave(img_dir + '/' + str(img_path).split('.')[0] + "_guassian.png", image_gaussian) io.imsave(img_dir + '/' + str(img_path).split('.')[0] + "_sp.png", image_sp) if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--img_dir', type=str, default='./img') parser.add_argument('--img_path', type=str, default='') args = parser.parse_args() add_noise(args.img_path, args.img_dir)