img_augmentation_noise.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import argparse
  2. from PIL import Image
  3. from skimage import util, img_as_float, io
  4. import os
  5. def add_noise(img_path, img_dir):
  6. if img_dir == '':
  7. # 读取图像
  8. img_org = Image.open(img_path)
  9. # 转换为 skimage 可操作的格式
  10. img = img_as_float(img_org)
  11. image_gaussian = util.random_noise(img, mode="gaussian") # 加高斯噪声
  12. image_sp = util.random_noise(img, mode="s&p") # 加椒盐噪声
  13. # 存储文件到新的路径中,并修改文件名
  14. io.imsave(str(img_path)[0:-4] + "_guassian.png", image_gaussian)
  15. io.imsave(str(img_path)[0:-4] + "_sp.png", image_sp)
  16. else:
  17. img_list = os.listdir(img_dir)
  18. for img_path in img_list:
  19. img_p = img_dir + '/' + img_path
  20. # 读取图像
  21. img_org = Image.open(img_p)
  22. # 转换为 skimage 可操作的格式
  23. img = img_as_float(img_org)
  24. image_gaussian = util.random_noise(img, mode="gaussian") # 加高斯噪声
  25. image_sp = util.random_noise(img, mode="s&p") # 加椒盐噪声
  26. # 存储文件到新的路径中,并修改文件名
  27. io.imsave(img_dir + '/' + str(img_path).split('.')[0] + "_guassian.png", image_gaussian)
  28. io.imsave(img_dir + '/' + str(img_path).split('.')[0] + "_sp.png", image_sp)
  29. if __name__ == '__main__':
  30. parser = argparse.ArgumentParser()
  31. parser.add_argument('--img_dir', type=str, default='./img')
  32. parser.add_argument('--img_path', type=str, default='')
  33. args = parser.parse_args()
  34. add_noise(args.img_path, args.img_dir)