-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathimgproc.py
112 lines (96 loc) · 2.19 KB
/
imgproc.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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
from PIL import Image
import numpy
#****************************
n_class=2
n_rows=4 #each row has 6 samples
#*****************************
def normalize(im):
rows=im.size[1]
cols=im.size[0]
#print rows,cols
a=numpy.array(im.convert('L'))
'''
rowno=0
for x in a:
print rowno
print x
rowno+=1
'''
ymin=0
xmin=0
ymax=rows
xmax=cols
flag=0
for y in range(0,rows):
for x in range(0,cols):
if(a[y][x] < 40):
ymin=y
flag=1
break
if(flag):
break
flag=0
for x in range(0,cols):
for y in range(ymin,rows):
if(a[y][x] < 40):
xmin=x
flag=1
break
if(flag):
break
flag=0
for y in range(ymin,rows):
flag=0
for x in range(xmin,cols):
if( a[y][x] < 40):
flag=1
break
if(not(flag)):
ymax=y
break
flag=0
for x in range(xmin,cols):
flag=0
for y in range(ymin,rows):
if(a[y][x] < 40):
flag=1
break
if(not(flag)):
xmax=x
break
#print ymin,xmin
#print ymax,xmax
mx=(xmax-xmin)/20 #margin
my=(ymax-ymin)/20
xmin-=mx
if(xmin<0):
xmin=0
ymin-=my
if(ymin<0):
ymin=0
xmax+=mx
if(xmax>cols):
xmax=cols
ymax+=my
if(ymax>rows):
ymax=rows
box=(xmin,ymin,xmax,ymax)
region=im.crop(box)
#region=region.resize((64,62))
im2=Image.fromarray(numpy.uint8(region.convert('L')))
#im2.save("result.jpg")
return im2
name="trainData/"
ext=".jpg"
for i in range(0,n_class): #class no
imagename=name+str(i)+ext
im=Image.open(imagename)
for j in range(0,n_rows): #no. of samples(rows,cols)
y=60+j*150
for k in range(0,6):
x=30+k*150
box=(x,y,x+140,y+140)
temp=im.crop(box)
im2=normalize(temp)
im2.save(name+str(i)+str(j*6+k)+"n"+ext)
#print "DONE!"