版本:python3.7
工作中有需要识别图片中的汉字,查看了半天大神们的博客,但没找到完全可以用的源码,经过自己的实践,以下源码可以实现:
创建应用
首先你需要登录百度AI,选择文字识别,创建一个应用,会生成 应用名称、AppID、API Key、Secret Key 这些东西,下面我们代码是需要用到APP_ID、API_Key 和 Secret_Key ,然后安装百度的包:baidu-aip
图片我个人保存在了filePath 路径里,当然这个图片也可以是从其他地方读取。
如果正则表达式不太会,可以参考:http://www.cnblogs.com/wenmaoyu/archive/2011/07/21/2113124.html
# -*- coding: UTF-8 -*-
from aip import AipOcr
import re
# 定义常量
APP_ID = '***' # 百度生成的
API_KEY = '***'
SECRET_KEY = 'g7grgiXHKf9Rbv1u7frxyOsh39mdayYs'
# 初始化AipFace对象
aipOcr = AipOcr(APP_ID, API_KEY, SECRET_KEY)
# 读取图片
filePath = "D:\QQ129.png"
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
# 定义参数变量
options = {
'detect_direction': 'true',
'language_type': 'CHN_ENG',
}
# 调用通用文字识别接口
result = aipOcr.basicAccurate(get_file_content(filePath), options) #basicAccurate是高精度版,识别率高, basicGeneral是普通识别版
print(result)
world=re.findall(r'[\u4e00-\u9fa5]',str(result)) #通过正则表达式识别汉字
print(world)
for each in world:
print(each)