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