import json import re import time import easyocr # import kpl_util 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)