Administrator
4 天以前 48fb7a00951f91bdc707e5dd2d196e5bccb752c3
ocr/ocr_util.py
@@ -1,17 +1,23 @@
import re
import time
import cv2
import easyocr
from cnocr import CnOcr
# 图像识别类
class OcrUtil:
    __ocr = CnOcr()
    reader = easyocr.Reader(['ch_sim', 'en'], gpu=False)
    @classmethod
    def ocr(cls, mat):
        res = cls.__ocr.ocr(mat)
        return res
    @classmethod
    def easy_ocr(cls, mat):
        res = cls.reader.readtext(mat, detail=1)
        return res
    # 返回(识别内容,位置信息)
@@ -28,3 +34,22 @@
                                         (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__":
    pass