开源的识别图片中文字

发布时间 2023-03-28 10:09:23作者: hello_tree

https://blog.csdn.net/weixin_38809962/article/details/126966598


import logging
from aip import AipOcr
import easyocr
import cv2
import numpy as np

logger = logging.getLogger(__name__)


def cv2_readimg(filename, mode):
# 把图片文件存入内存
img_date = np.fromfile(filename, dtype=np.uint8)
# 从内存数据读入图片
img = cv2.imdecode(img_date, mode)
return img


def baiduOCR(picfile): # picfile:图片文件名
# APP_ID = '24656072'
# API_KEY = '30HUE1gfGA7Qoqkgn5tAXHKm-1'
# SECRET_KEY = 'hOk41TfUk4nmlboFBMilTxoP67WDwMIA-2'
# client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
# i = open(picfile, 'rb')
# img = i.read()
# # message = client.basicAccurate(img) # """ 调用通用文字识别(高精度版),每天800次免费 """
# # message = client.basicGeneral(img) # 通用文字识别,每天 50 000 次免费
# message = client.accurate(img)
# # message = client.general(img)
# # message = client.general(img)
# # message = client.enhancedGeneral(img)
# # while message is None:
# # message = client.basicAccurate(img)
# # if message is None:
# # message = client.general(img)
# # if message is None:
# # message = client.basicGeneral(img)
# # else:
# # break
# # else:
# # break
# i.close()
# # 输出文本内容
# info_list = []
# for text in message.get('words_result'):
# info_list.append(text.get('words'))
# logger.info("图像识别返回的信息列表为:{}".format(info_list))
# return str(info_list)

# 以下为easyocr检测,只需要运行一次就可以将模型加载到内存中
reader = easyocr.Reader(['ch_sim', 'en'], gpu=False) # 简体中文、英文检测
picfile = cv2_readimg(picfile, cv2.IMREAD_GRAYSCALE)
origin_list = reader.readtext(picfile)
result_list = []
for text in origin_list:
result_list.append(text[1])
result_str = str(result_list)
logger.info("识别出的文字为:{}".format(result_str))
return result_str