diff --git a/exp/keras/transformation_matrices.py b/exp/keras/transformation_matrices.py new file mode 100644 --- /dev/null +++ b/exp/keras/transformation_matrices.py @@ -0,0 +1,56 @@ +import math +import random + +import numpy as np + + +def getIdentity(): + return np.float32([ + [1,0,0], + [0,1,0], + [0,0,1] + ]) + + +def getRotation(): + alpha=random.random()*2*math.pi + return np.float32([ + [math.cos(alpha),math.sin(alpha),0], + [-math.sin(alpha),math.cos(alpha),0], + [0,0,1] + ]) + + +def getTranslation(dx,dy): + return np.float32([ + [1,0,dx], + [0,1,dy], + [0,0,1] + ]) + + +def getScale(kx,ky=0): + if not ky: ky=kx + return np.float32([ + [kx,0,0], + [0,ky,0], + [0,0,1] + ]) + + +def getMirroring(): + return np.float32([ + [random.choice((1,-1)),0,0], + [0,1,0], + [0,0,1] + ]) + + +def getProjection(): + dx=random.uniform(-0.001,0.001) + dy=random.uniform(-0.001,0.001) + return np.float32([ + [1,0,0], + [0,1,0], + [dx,dy,1] + ])