123456789101112131415161718192021222324252627282930313233343536373839 |
- 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)
|