Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathimagerec10.py
More file actions
Latest commit
107 lines (81 loc) · 2.74 KB
/
Copy pathimagerec10.py
File metadata and controls
107 lines (81 loc) · 2.74 KB
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
fromPILimportImage
importnumpyasnp
importmatplotlib.pyplotasplt
importtime
fromcollectionsimportCounter
frommatplotlibimportstyle
style.use("ggplot")
defcreateExamples():
numberArrayExamples=open('numArEx.txt','a')
numbersWeHave=range(1,10)
foreachNuminnumbersWeHave:
forfurtherNuminnumbersWeHave:
imgFilePath='images/numbers/'+str(eachNum)+'.'+str(furtherNum)+'.png'
ei=Image.open(imgFilePath)
eiar=np.array(ei)
eiarl=str(eiar.tolist())
lineToWrite=str(eachNum)+'::'+eiarl+'\n'
numberArrayExamples.write(lineToWrite)
defthreshold(imageArray):
balanceAr= []
newAr=imageArray
foreachPartinimageArray:
forthePartsineachPart:
avgNum=reduce(lambdax, y: x+y, theParts[:3]) /len(theParts[:3])
balanceAr.append(avgNum)
balance=reduce(lambdax, y: x+y, balanceAr) /len(balanceAr)
foreachRowinnewAr:
foreachPixineachRow:
ifreduce(lambdax, y: x+y, eachPix[:3]) /len(eachPix[:3]) >balance:
eachPix[0] =255
eachPix[1] =255
eachPix[2] =255
eachPix[3] =255
else:
eachPix[0] =0
eachPix[1] =0
eachPix[2] =0
eachPix[3] =255
returnnewAr
defwhatNumIsThis(filePath):
matchedAr= []
loadExamps=open('numArEx.txt','r').read()
loadExamps=loadExamps.split('\n')
i=Image.open(filePath)
iar=np.array(i)
iarl=iar.tolist()
inQuestion=str(iarl)
foreachExampleinloadExamps:
try:
splitEx=eachExample.split('::')
currentNum=splitEx[0]
currentAr=splitEx[1]
eachPixEx=currentAr.split('],')
eachPixInQ=inQuestion.split('],')
x=0
whilex<len(eachPixEx):
ifeachPixEx[x] ==eachPixInQ[x]:
matchedAr.append(int(currentNum))
x+=1
exceptExceptionase:
print(str(e))
x=Counter(matchedAr)
print(x)
graphX= []
graphY= []
ylimi=0
foreachThinginx:
graphX.append(eachThing)
graphY.append(x[eachThing])
ylimi=x[eachThing]
fig=plt.figure()
ax1=plt.subplot2grid((4,4),(0,0), rowspan=1, colspan=4)
ax2=plt.subplot2grid((4,4),(1,0), rowspan=3,colspan=4)
ax1.imshow(iar)
ax2.bar(graphX,graphY,align='center')
plt.ylim(400)
xloc=plt.MaxNLocator(12)
ax2.xaxis.set_major_locator(xloc)
plt.show()
whatNumIsThis('images/test.png')
whatNumIsThis('images/numbers/9.5.png')