简介
最新的Python做OCR文本识别_百度源代码,现在已经更新到GUI版本
安装
看了官方才知道有pip安装。。当初找sdk还找了半天
方法一 pip
pip install baidu-aip
方法二 sdk
下载python SDK之后解压,运行解压之后的setup.py
python setup.py install
创建应用,获取密钥
打开百度云,注册登录实名认证
进入控制台,点击文本识别,创建应用
然后在创建好的应用里拷贝ID + key
开始识别
待识别的文本
基础版本V0.0.0
# 利用百度OCR在线识别图片文本
from aip import AipOcr
""" 读取图片 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
if __name__ == "__main__":
""" 你的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
image = get_file_content('tmp.PNG')
""" 调用通用文字识别, 图片参数为本地图片 """
res = client.basicGeneral(image);
print( res)
对于image,百度有条件:图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
basicGeneral()返回格式解读
爱之初体验
可以看到返回的结果有点凌乱。。
基础极简版V0.0.0.1
上面返回的数据还没有经过整理,下面整理修缮一下
# 利用百度OCR在线识别图片文本
from aip import AipOcr
""" 你的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'
""" 待识别图片的路径 """
filepath = 'tmp.PNG'
""" 读取图片的编码 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
""" 将所有的文字都合并到一起 """
def get_text_concat(resdict):
strx=""
for tex in resdict["words_result"]:
strx+=tex["words"]
return(strx)
if __name__ == "__main__":
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
image = get_file_content(filepath)
""" 调用通用文字识别, 图片参数为本地图片 """
res = client.basicGeneral(image);
text = get_text_concat(res)
print( text)
基础加强版V0.0.1
支持文件保存,异常处理
# 利用百度OCR在线识别图片文本
from aip import AipOcr
""" 你的 APPID AK SK """
APP_ID = ''
API_KEY = ''
SECRET_KEY = ''
""" 待识别图片的路径 """
filepath = 'tmp.PNG'
# 是否保存结果到文件中,True为保存,False为不保存,直接输出
isFileSave = True
# 若保存,保存路径为
saveFilePath = 'OcrText.txt'
# 是否保留上次文件中的内容,True为保存之前的内容,并在之后添加本次内容
# False为删除上次的内容,只保留本次识别结果
isLastSave = True
""" 读取图片的编码 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
""" 将所有的文字都合并到一起 """
def get_text_concat(resdict):
strx=""
for tex in resdict["words_result"]:
strx+=tex["words"]
return(strx)
""" 将数据data保存到filePath中 """
def save_text(filePath, data, isLastSave = True):
if(isLastSave):
with open(filePath, 'a', encoding='utf-8') as f:
f.write('\n'+ data)
else:
with open(filePath, 'w', encoding='utf-8') as f:
f.write(data)
if __name__ == "__main__":
print("OCR识别开始")
""" 调用通用文字识别, 图片参数为本地图片 """
try:
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
image = get_file_content(filepath)
res = client.basicGeneral(image)
text = get_text_concat(res)
if(isFileSave):
save_text(saveFilePath, text, isLastSave)
print("识别文字已保存到文件中")
else:
print( text)
print("OCR识别成功,程序结束")
except Exception as e:
print("OCR识别失败!!!程序非正常结束\n详情:",e)
支持拖动图片
连续处理多张图片??