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
| import re
| import easyocr
|
|
| reader = easyocr.Reader(['ch_sim', 'en'], gpu=True, model_storage_directory="res/ocr_model/model",
| download_enabled=False)
|
| num_reader = easyocr.Reader(['en'], gpu=True, model_storage_directory="res/ocr_model/model",
| download_enabled=False)
|
|
| # 数字识别
| def recognize_code(img):
| results = num_reader.readtext(img, detail=0, mag_ratio=1.5)
| # print("识别结果", results)
| if results:
| for result in results:
| result = result.strip()
| if len(result) >= 6:
| code = result[-6:]
| if code.isnumeric():
| return code
| return None
|
|
| # 数字识别
| def recognize_num(img):
| results = num_reader.readtext(img, detail=0, mag_ratio=1.5)
| # print("识别结果", results)
| if results:
| result = results[0].strip()
| if result.isnumeric():
| return result
| return None
|
|
| def ocr_with_key(mat, key, mag_ratio=1):
| res = reader.readtext(mat, detail=1, text_threshold=0.6, mag_ratio=mag_ratio)
| print("识别内容", res)
| res_final = []
| if res:
| for r in res:
| text = r[1]
| if re.match(key, text):
| ps = r[0]
| res_final.append((text, [(int(ps[0][0]), int(ps[0][1])), (int(ps[1][0]), int(ps[1][1])),
| (int(ps[2][0]), int(ps[2][1])), (int(ps[3][0]), int(ps[3][1]))]))
| return res_final
|
| if __name__ == '__main__':
| img = "C:\\Users\\Administrator\\Desktop\\ocr\\codes\\000021_23850.png"
| results = num_reader.readtext(img, detail=1, mag_ratio=2)
| print(results)
|
| # results = kpl_util.recognize_datas("C:\\Users\\Administrator\\Desktop\\test.png")
| # print(results)
|
|