def resize_perturbation(image_array, min_factor=0.3): factor = random.random() * (1 - min_factor) + min_factor new_size = (int(image_array.shape[1] * factor), int(image_array.shape[0] * factor)) original_size = image_array.shape[:2][::-1] image = img_util.get_PIL(image_array).resize(new_size, resample=PIL.Image.BILINEAR) image = img_util.get_PIL(img_util.get_np(image)) image_array = img_util.get_np( image.resize(original_size, resample=PIL.Image.BILINEAR)) #image_array = binarize(image_array) return image_array
def median(image_array, size): image_array = img_util.get_np(image_array) return cv2.medianBlur(image_array, size)
def dilate(image_array, size): image_array = img_util.get_np(image_array) return cv2.dilate(image_array, np.ones((size, size)))
def erode(image_array, size): image_array = img_util.get_np(image_array) return cv2.erode(image_array, np.ones((size, size)))
def dilate_perturbation(image_array, range_max=2): image_array = img_util.get_np(image_array) erode_value = random.randint(1, range_max) if erode_value > 1: image_array = dilate(image_array, erode_value) return image_array