| | |
| | | import time |
| | | |
| | | import cv2 |
| | | import easyocr |
| | | from cnocr import CnOcr |
| | | |
| | | |
| | | # 图像识别类 |
| | | class OcrUtil: |
| | | __ocr = CnOcr() |
| | | reader = easyocr.Reader(['en'], gpu=False) |
| | | |
| | | @classmethod |
| | | def ocr(cls, mat): |
| | |
| | | (int(ps[2][0]), int(ps[2][1])), (int(ps[3][0]), int(ps[3][1]))])) |
| | | print("识别时间", time.time() - start) |
| | | return res_final |
| | | |
| | | @classmethod |
| | | def ocr_num(cls, mat, key): |
| | | start = time.time() |
| | | res = cls.reader.readtext(mat, detail=1, text_threshold=0.6, mag_ratio=1.5) |
| | | 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]))])) |
| | | print("数字识别时间", time.time() - start) |
| | | return res_final |
| | | |
| | | |
| | | if __name__ == "__main__": |
| | | result = OcrUtil.ocr_num("D:/test1.png", "000977") |
| | | print(result) |