31 lines
1002 B
Python
31 lines
1002 B
Python
import cv2
|
|
import numpy as np
|
|
import random
|
|
|
|
def rotateImage(image, angle):
|
|
image_center=tuple(np.array(image.shape[1::-1])/2)
|
|
rot_mat=cv2.getRotationMatrix2D(image_center, angle, 1.0)
|
|
result=cv2.warpAffine(image, rot_mat, image.shape[1::-1], flags=cv2.INTER_LINEAR)
|
|
return result
|
|
|
|
def bruit(image):
|
|
h, w, c=image.shape
|
|
n=np.random.randn(h, w, c)*random.randint(5, 30)
|
|
return np.clip(image+n, 0, 255).astype(np.uint8)
|
|
|
|
def change_gamma(image, alpha=1.0, beta=0.0):
|
|
return np.clip(alpha*image+beta, 0, 255).astype(np.uint8)
|
|
|
|
def color(image, alpha=20):
|
|
n=[random.randint(-alpha, alpha), random.randint(-alpha, alpha),random.randint(-alpha, alpha)]
|
|
return np.clip(image+n, 0, 255).astype(np.uint8)
|
|
|
|
def random_change(image):
|
|
if np.random.randint(2):
|
|
img=change_gamma(image, random.uniform(0.8, 1.2), np.random.randint(100)-50)
|
|
if np.random.randint(2):
|
|
img=bruit(image)
|
|
if np.random.randint(2):
|
|
img=color(image)
|
|
return image
|