-
Notifications
You must be signed in to change notification settings - Fork 1
/
rotation.py
71 lines (43 loc) · 1.28 KB
/
rotation.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
from scipy.ndimage import rotate
from PIL import Image
import numpy as np
from numpy import asarray
import sys
import matplotlib.pyplot as plt
import matplotlib.cm as cm
a=np.ones((600,600,3))
a.fill(1)
#a=a.astype('float32')
#print(type(a))
plt.imsave('blank.png', a, cmap=cm.gray)
for r in range(1,5000):
angle=np.random.randint(1,90)
canvas=Image.open("blank.png")
im=Image.open("image"+str(r)+".png")
width,height=im.size
#print(width)
#print(height)
#width,height=im.size
sub_img=im.crop(box=(5,100,550,550))#(left,upper,right,lower)[0,0] is top left
if r%10==0:
sub_img=sub_img.rotate(0)
else:
sub_img=sub_img.rotate(angle)
canvas.paste(sub_img,box=(2,10))
canvas.save("test2.png")
alpha = canvas.convert('RGBA').split()[-1]
bg_colour=(255, 255, 255)
bg = Image.new("RGBA", canvas.size, bg_colour + (255,))
bg.paste(canvas, mask=alpha)
bg.save("test3.png")
mg = Image.open("test3.png").convert('L')
data=np.array(mg)
data[data > 0] = 1
data=data.astype('float32')
#plt.imsave('final'+str(r)+'.png', np.array(data), cmap=cm.gray)
if r==1:
a=data
else:
a=np.dstack((a,data))
np.save('rotate_data',a)
np.save('rotate_data_L100_1',a)