from aip import AipOcr
def baiduOCR(picfile):
"""利用百度api识别文本,并保存提取的文字
picfile: 图片文件名
outfile: 输出文件
"""
APP_ID = 'XXX'
API_KEY = 'XXXCh0ZmWe6o1'
SECRECT_KEY = 'XXXXXXXX5UqbZElQ3lrp7Nu20OLtwNiI'
client = AipOcr(APP_ID, API_KEY, SECRECT_KEY)
text_list = []
time_out = 0
while time_out < 5:
try:
message = client.basicGeneral(picfile)
break
except:
time_out += 1
if time_out == 5:
print('识别出错,程序退出')
return '网络错误'
try:
for text in message['words_result']:
text = text['words']
print(text)
text_list.append(text)
except KeyError or TypeError:
if message['error_code'] == 17:
return 'limit'
elif message['error_code'] == 18:
return 'qps'
def xunfeiOCR(picfile):
URL = "https://webapi.xfyun.cn/v1/service/v1/ocr/handwriting"
APPID = "xxxxxf46"
API_KEY = "xxxxxxef7879e"
def getHeader():
curTime = str(int(time.time()))
param = {"language": "cn|en", "location": "false"}
param = js.dumps(param)
paramBase64 = base64.b64encode(param.encode('utf-8'))
m2 = hashlib.md5()
str1 = API_KEY + curTime + str(paramBase64, 'utf-8')
m2.update(str1.encode('utf-8'))
checkSum = m2.hexdigest()
header = {
'X-CurTime': curTime,
'X-Param': paramBase64,
'X-Appid': APPID,
'X-CheckSum': checkSum,
'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8',
}
return header
f1_base64 = str(base64.b64encode(picfile), 'utf-8')
data = {
'image': f1_base64
}
try:
r = requests.post(URL, data=data, headers=getHeader())
result = js.loads(str(r.content, 'utf-8'))
except:
time.sleep(5)
r = requests.post(URL, data=data, headers=getHeader())
result = js.loads(str(r.content, 'utf-8'))
text_list = []
if result['data']['block'][0]['line']:
text = result['data']['block'][0]['line'][0]['word'][0]['content']
print(text)