-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.py
More file actions
183 lines (153 loc) · 46.1 KB
/
server.py
File metadata and controls
183 lines (153 loc) · 46.1 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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Time : 2024/10/16 09:50
# @Author : Hypdncy
# @FileName: server.py
# @Software: PyCharm
# @Blog :https://github.com/Hypdncy
# @Description: 使用python3,更新ddddor库: pip install -U ddddocr
import uuid
import aiohttp
import ddddocr
from aiohttp import web
routes = web.RouteTableDef()
ocr = ddddocr.DdddOcr()
g_data = {
"count_get_cap": 0,
"img": [
"data:image/png;base64,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",
"data:image/png;base64,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",
"data:image/png;base64,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",
"data:image/png;base64,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",
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIIAAAAwCAIAAABSYzXUAAAQFklEQVR4Xu1aC1RU17kWTYxm3aSJNsYmfaRNehvTxJgm0ZjeJqYm8TYpaem6JkXzuLmNDAIqAwioIIiKEBXkobxBREBeIiAvEQkCDq/hDSPyGBBGQN44PIZh2Pffs8/MnLPnISG1ZS341r9Y5/znP3tmvm/v/f//OSxCC5gDWEQ7FvDvwIIMcwIPXIbq7mrHHMctUVvWh6zfGr/VLtsuqylLMa2g4+Y3sAyCmpZ1pocXv8n7tYmTvU/S2MQkHTVbxNTGfBT9UbIouUfaA6f9Y/05LTm8NN72pO137t2ho+cxsAyvmrrFXSmDA5G4a7tTmDHfn46aFWAdgAZ3R+/SFxCKrY01jjEekY3QF+YrsAzLNlpOyOTkvG9I+tgfdnNCZgv7HPuLoou0V4VjBcdOCU7R3vkKLMMvjfc3tneT87NpN97f6c0JmS0+jPqQ7EU60TrY+knsJ7R3vgLL4OCb9LlzWP+wNPKyYNUHtrXNEjpqVtgQskE2JaO9KsCljaEbae98BZZhXDb5930hK97jb97p9c/SAPDBuQ/Eg2Laq0L7UDukB9o7X/EAC9Y9mXuym7NprwqhwlD3AnfaO1/xAGXIbMqE2pT2KiEZkbwf+X7HcAd9Yb6ClkE6oVjjUrfIrBxsMa/8IXPhcsuKH+2pXG1X/fyB2t8dadjs1Wga0moT3+GT25NRO9QxoHf3hx7ty8TPC5N9kI8PsrZGSUloYgL8ncOdJhdMEusTmbirVxGfjxIS0OR9+pWxkZ7Goohr4V8kHl53lr8iZOfDZ62fTHBbWxhrdbs2Y/oHt4QKhXyou7G57IIgwTbN649Re38CHxGz/5flaa5wiY7mQjqJ1gSjRcewLfZAD3mi5cfRj7zQal/0fAD6XQTaHItMU5BNLvIpQxktqINbq9MyCFqkRIOZ27snGienpqlx0PQ0KiqacrBHZmbYzM3hr9zRPinHd3Pk5qSGJCZMJEI8HhPj5oYGBzmDqAAU5wRtBVKCzBbps9gDz98sCqfvNIjhnqaW8viyFOcrAX+Lc1ljYPzKzGP0zVwIJIwGM7d3o9GkaubQMkSX9AOzbpfvyOTT/VJ5S+9EiViaWj0UfL3XJVWyI6rtY7+mdYcbnrKtMuJplPDM6qLGQaGhhFyFo8PVsy4pR74gp8N8i87+NiYGFoeDA/b7+SFLS3zg5ISGhjjjqBDt8LOEQ680XA/qbi6SDnTIZaOgjWx8eLBL1FR8Pvv0X0LMHwK+sgNMpibH6Zu5aK+5nHX6k0jbp9hEgwYXnP8z0+/jG/H8+vwAiShXOtgJ2pOrCa4v06NwEV2PmXUrhAoQ9Y+jlkFUcgelNqHgSuRSgHZkoo/j0bpw9JQPMmIp4SlgbqdlcM/oAloD83W0vhRAp7Vu9USGFfwq+jJMbaA1MhKWOj7t7GSmPFhxMRNz4QI+PXoUx3R3o8OH8amHB3MLF1n+xhecfk17WeiX1Mbu/xVQBtzR17iI2P04hJ2zexo0E6YfFlcmw16kc9uBq0SGYN5ikJy+zIL7DUxrYCXt1wbotDaMkWGFqkOjZdgZ3Q60XqxgNgfYWiSDk3WSsbK20eJWKayM8rbR6o4xUdd4a+/EiweZLLLMsoI7DPwCIeZ03z40NcV4iDBgAQH4tLUVb0ewWd2+zQScOMEECFSThAVh2iGgI9RyWbD5kiCeUYjF0vMOPwXGISuoY7qaCwlrrUJV4tEFkBNiYDtiO0HF8lSXS55vh+9+DOQhTlBIvVwkjXnseAo7szCtFxuZU9ijJfdQXS8q60LFErwyyrtQdQ8S9UHfil5UZZFlx5l4WgZj/yagtbD5Hjl9y0NEZQKd9sqheu4wSgFdXTGn168znitXGJZ378bZmFxNVPFVWKhZLhkaZtW4Ky5VM0JZZQZT+E5O3COe5GMbuHdzkBu6DWIE8TZwPDbcXXv1FOR89oDRjj8nkWpdwaqzVZzpgnECprVQVfq9FUlnAp32SigTT8sAtRDQeqsHlzTiPpk24zrty3AxNQ5GeTlnQcCmr0zU2Pz98d/9+5FMWWgNDOBSilxydtZXMhXEWGhrAAZVEwmADZ14YNFwb+WgPu90kHJTgioLdhvtAauyPElk+qkP1U6ox7jDcAC1ENB6awAfi4douvXZl2nM7bQMUJgCrUNjmLi06iE4XmIuhL8PKf9SttRCuJJfBQVuTGk/NQ6G9oKAylU95cHq6pgwLy/GAzrBZqUHCrks9fg72qxF2T+DlNVUiufviQeqTPpmFqBAwjub1jjEztmuglUFYQ35gWonJHCoBeiBWIDCFGgdwrMXpTXh4yUe+C9UrtrsL/0WrTyFC9wY1SbCkWFKMQ29wsM7y6QyKZyezrurZvzx3ZWw8+xN7BiVKSA566hQdYLKEKWlGg3OnmVicnI0zjTV9NAD+eTYreIomPUjfWL5hJTMa0GiHVwqjLFUs3Yjzpq+k4vKLA9tAYjVXfODgJHe1vBd/6F2libvp4dgAciAXuGRb5nT00IN44974Z1n7zU0OomTs7pCpcCRAbIxnuNWV98IesM00dQ0KnIJqyol5nixk33LfQAznWTmbOVTDdhtIDGYKbejcWVZ2d6OLCwYDby9cfwMABOzKG5PlN1qICjv7P9Ojo/kR/5DTRnQB7UmfY8WqrK/hcjz9s9m+v8ZVGkqjYG0H+f8GyiZphVT6oUFBoWs4SIYsjEw/lPVaxooXrUXgWMe+w4aHBmgCgKiV9plbQzd+HrQ62Cv+m/6leeO37h7v3z00kqbEnxVuzY1jIYGTDG0BT3Kh94w9/fuRRLlA0SpFOtBNICDe0xdYBhAU5jlcmDnepRZb7sQNICOlz2dv28TRwAdA9zbXpsOx8LLbuwBDddIAKiCgOjXWB97dxQliJDzdbQtBcsDV1cafLfCkeFyDU4GW3xuyaZkwjvC3ckJr3qe+8Xho8+4Ov3koNty60t4QfDKdmXsChGG3Oi4cU82I+KQry8mOjiY4+zt1ZSwfD7q0moA9QOmJ7DTdQunnBZhApuykuR9dPQMIK66BPdm+n4Ex9BDsNvp/HPf0NFauNyMid5ygTmF3LAnB7kWoCNFyCmf6RKMDLbhHBlCC3uB6C/CxeQU8gG1I4EZ8UrIQiG2NX6rS55LfH28qFc0qdBd4aC2Nsy1NXe/htxANLCyMpCWdQIaXSBIVBCCT6anoSuGapJok3ri3Sm5MlHOGJBvYvY9BzvSUM8tOE332aLWAFoT2Zjurp6N0CpM9BeqvAb5gNqRwB5mii/d4MhwJP0OEG2bgKvfPqlcWwOwJ/ZU5Lbmnrxx8utLX78d9jZbkrdC3tqetN29wD2pIQlU0bzzGR3FdO/Zw/4sTXWkbqpnDLICoNYE6m8WhhHn+Mhdki0gbXDD74P8RBu4Kzdul2REUl4UollbPKO8gjPlknJ91j7UDreAOVwbAaJ3Zo3CaH1jtADEnjT4SpMjg1Xs7UWqB0SVt3GeAFtuWbHZq/EPx2/+2b/pH5FtUcWa2lSukAPdcXVxztecP034lC0J2JvBb4LTMccxPwG3x+MeR6Zxd6nCoUNYA8gT3x/j93ph8qr5qs31If7qnJNByuKySXyjoqviO/F3aY1pQeVBPsU+rnmue6/sNUsz+yr5K+MYY7ANIRvgS/7R9+UzPKOTVks3BLy2PvA1OFAPa+W86n2flywOPg1OV5vHNvm9TP1Ata3yjgOinz3lA8drTpsS3pd4yH58qmqFd92zfhUvBha+FxVmn2MPXwPsdOnpks4S9i/iyPBpcAvwHlHUh1RNA7HGbkN1ghqjk6Pw46Nrog/kHvgs4TOQgXzLfPvPgPGwg8aQ+cFvm23rJfAa5+/C2hxyHhq//6qnMCIbSQ8zVfMVyH8CPhEo/nvEB8TzzaFntMnSaU578fOlHb5vgDC27nhbUy2FxScdVmlOzRadsVxqHWUCn6I2kwsmRNFnfAqA97VBXjDgC37W6hXw2zMm2p9IDCYH+xdxZNh0ohFIT6/FvATma5oGKGTZYTMEbEo3e2+m3EyRWeLm2fvkVvb3mDTfAc4q/jY4hvoYfgwoRH4emTJqc8p1In6I+dP5P5Hb/8t/ra8F04KdMV9MnOsDXiMed/sVsGfys/hwe0BZQERlBCyLnJYc2ElqemrITgKZjGxuJDOPDkrCrB5l8x6x+/GcoK3QpkC+IR5o4+kfqcSmaEx6ejM+DqzUbEQVXd3wQQ29DWQTgy8AXwMsVBha1cUpODkyvKR84VPWhve4g6kStQwzbdb0geQAkWhMPgbCQGqJLQkjzmrHrzdFbNKeLIbtnYh3YCaapX5zLPyvwE6I20vpt9Lhd1ZWxBG+oBugv4MWoPuLdvgZ1L7QqcFp2SUncm+048+h+4MOUTHFTL6m4vPkUuLhdZwhVHgpBJNepqz1Dl7XyKCvWdMGR4ZVtlVAelsfTq1mUW1Eg9V21eyY2YDI0M38Dw4GHBNnCK52FNMKmDWNfY1k1pApw7YySRn4IaZH2lORcZS8WiAGUxi6BzJqhs9/E2eoxSOaz9KDkiQHiITGjZwO3KmHPhy3CKwWUjY+XHPVO+no62RYSEg6n4ev8sGktyk3V7NMRoPVvnSYAXBkWGohNOKVj00q5Ippk4BmIgPsVOyY2YAwzn5g19jIOOPiNM4Z4HZdJtCR7L4eJqwg3qYgemd/BzNLGgWRam3O2T3NvU8HYp1egMju5iL6ghLSgQ5Boh15M8G2ewOqx/IsLP0WtwVjcqhZkEkSIwPsVDMHR4YnrCtBhketKtTbEZhlTDs7ZjYAum3wU2UNBAJGBl3PtPUBdgngDmY6cERdul2bEWq5DGgib35SPH9PBWiDPO6GhpnthJ68VZiYfeav7AVHLNh8CbRyOpuSJ7yxDI+e0GxHYJZ6/ylFBzgybAttZQtALFxZOP0gEMbZpn6sXVhIB+tH3TU/oCP1+Dtjw93T0wqgbPBOQ1NJdHaACdT4hCwiRn2+8s2SQUDuVQsGO1Jl5jFIxbpfR/OMcgL/B2LoIVTYlsIRgFj499nLOTJAcma/YSbW3q/3fy9mCj6fIZ2nevuvPqitpYP1g93fGrB419/KZbjKMIwJaT+QDnM8zmWN9iDE4OrV4M/6O2vom7mA5Mx+w0ys3dA7UxocGQBeOd3P7at5xEK4mFcOGfurCDEVMBuEh2PGLSxQczMaGcE5UCxmZOi8/6NQNZpKY7SZoiz2wPMjfWL6Tj3Ay0hrBGKQ+aE8Hb6rLEJnAK9S9NwZ/Kx7sQfO2F9dpgMMg5bhgUAk4uxIlpbM239YE+Rx94xxLexzbcrUxEHehjKUvkc/IL1H2vyYGid63y9gg4K1Qkc/SPxLZABEROBHeGolQAA7O5SOnyp/L8gnx/LCv4QsDfs1lPxQEUHV9F3k/90SnJvJMzhtTIwOFCfZgxjQQ3x39uuO+uwf/m9ns8C/SoYFGMSCDHMCCzLMCSzIMCewIMOcwIIMcwILMswJLMgwJ7Agw5zAggxzAv8PEi7S1bOhxgYAAAAASUVORK5CYII=",
"data:image/png;base64,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",
"data:image/png;base64,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"
]
}
@routes.post('/')
@routes.get('/')
async def hello(request: aiohttp.web.Request):
text = await request.text()
print(text)
return web.Response(text="Hello, world")
@routes.get('/getCap')
@routes.post('/getCap')
async def hello(request: aiohttp.web.Request):
print("getCap" + str(g_data["count_get_cap"]))
g_data["count_get_cap"] += 1
data = {"key": str(uuid.uuid4()), "image": g_data["img"][g_data["count_get_cap"] % 7], "codeValue": None}
return web.json_response(data)
# 识别纯数字
@routes.post('/reg_digit')
async def reg_digit(request):
img_bytes = await request.content.read()
ocr.set_ranges(0)
res = ocr.classification(img_bytes, probability=True)
s = ""
for i in res['probability']:
s += res['charsets'][i.index(max(i))]
print(s)
return web.Response(text=s)
# 识别纯小写英文a-z
@routes.post('/reg_case_lower')
async def reg_case_lower(request):
img_bytes = await request.content.read()
ocr.set_ranges(1)
res = ocr.classification(img_bytes, probability=True)
s = ""
for i in res['probability']:
s += res['charsets'][i.index(max(i))]
print(s)
return web.Response(text=s)
# 识别纯大写英文A-Z
@routes.post('/reg_case_upper')
async def reg_case_upper(request):
img_bytes = await request.content.read()
ocr.set_ranges(2)
res = ocr.classification(img_bytes, probability=True)
s = ""
for i in res['probability']:
s += res['charsets'][i.index(max(i))]
print(s)
return web.Response(text=s)
# 识别小写英文a-z + 大写英文A-Z
@routes.post('/reg_case')
async def reg_case(request):
img_bytes = await request.content.read()
ocr.set_ranges(3)
res = ocr.classification(img_bytes, probability=True)
s = ""
for i in res['probability']:
s += res['charsets'][i.index(max(i))]
print(s)
return web.Response(text=s)
# 识别小写英文a-z + 整数0-9
@routes.post('/reg_digit_case_lower')
async def reg_digit_case_lower(request):
img_bytes = await request.content.read()
ocr.set_ranges(4)
res = ocr.classification(img_bytes, probability=True)
s = ""
for i in res['probability']:
s += res['charsets'][i.index(max(i))]
print(s)
return web.Response(text=s)
# 识别大写英文A-Z + 整数0-9
@routes.post('/reg_digit_case_upper')
async def reg_digit_case_upper(request):
img_bytes = await request.content.read()
ocr.set_ranges(5)
res = ocr.classification(img_bytes, probability=True)
s = ""
for i in res['probability']:
s += res['charsets'][i.index(max(i))]
print(s)
return web.Response(text=s)
# 识别小写英文a-z + 大写英文A-Z + 整数0-9
@routes.post('/reg_digit_case')
async def reg_digit_case(request):
img_bytes = await request.content.read()
ocr.set_ranges(6)
res = ocr.classification(img_bytes, probability=True)
s = ""
for i in res['probability']:
s += res['charsets'][i.index(max(i))]
print(s)
return web.Response(text=s)
# 识别自定义字符,默认为识别算术
@routes.post('/reg_digit_arithmetic')
async def handle_cb000(request):
img_bytes = await request.content.read()
digit_arithmetic = "0123456789+-*/="
ocr.set_ranges(digit_arithmetic)
res = ocr.classification(img_bytes, probability=True)
s = ""
for i in res['probability']:
s += res['charsets'][i.index(max(i))]
print(s)
s = s.replace("=", "")
if '+' in s:
zhi = int(s.split('+')[0]) + int(s.split('+')[1][:-1])
print(zhi)
return web.Response(text=str(zhi))
elif '-' in s:
zhi = int(s.split('-')[0]) - int(s.split('-')[1][:-1])
print(zhi)
return web.Response(text=str(zhi))
elif '*' in s:
zhi = int(s.split('*')[0]) * int(s.split('*')[1][:-1])
print(zhi)
return web.Response(text=str(zhi))
elif 'x' in s:
zhi = int(s.split('x')[0]) * int(s.split('x')[1][:-1])
print(zhi)
return web.Response(text=str(zhi))
elif '/' in s:
zhi = int(s.split('/')[0]) / int(s.split('/')[1][:-1])
return web.Response(text=str(zhi))
else:
return web.Response(text=s)
if __name__ == '__main__':
app = web.Application()
app.add_routes(routes)
web.run_app(app, host="127.0.0.1", port=60000)