123456789101112131415161718192021222324252627282930313233343536373839 |
- import numpy as np
- import cv2
- import random
- import copy
- # 噪点增加
- def add_noise(cls,img):
- for i in range(20): #添加点噪声
- temp_x = np.random.randint(0,img.shape[0])
- temp_y = np.random.randint(0,img.shape[1])
- img[temp_x][temp_y] = 255
- return img
- # 适当腐蚀
- def add_erode(cls,img):
- kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(3, 3))
- img = cv2.erode(img,kernel)
- return img
- # 适当膨胀
- def add_dilate(cls,img):
- kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(3, 3))
- img = cv2.dilate(img,kernel)
- return img
- # 随机扰动
- def do(self,img_list=[]):
- aug_list= copy.deepcopy(img_list)
- for i in range(len(img_list)):
- im = img_list[i]
- if self.noise and random.random()<0.5:
- im = self.add_noise(im)
- if self.dilate and random.random()<0.25:
- im = self.add_dilate(im)
- if self.erode and random.random()<0.25:
- im = self.add_erode(im)
- aug_list.append(im)
- return aug_list
|