python 3调用百度OCR API实现剪贴板文字识别
本程序调用百度OCRAPI对剪贴板的图片文字识别,配合CaptureScreen软件,可快速识别文字。
#!python3
importurllib.request,urllib.parse
importos,io,sys,json,socket
importbase64
fromPILimportImageGrab
socket.setdefaulttimeout(30)
defget_auth():
apikey='yourapikey'
secret_key='yoursecretkey'
host='https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=%s&client_secret=%s'%(apikey,secret_key)
req=urllib.request.Request(host)
req.add_header('Content-Type','application/json;charset=UTF-8')
res=urllib.request.urlopen(req)
content=res.read()
if(content):
o=json.loads(content.decode())
returno['access_token']
returnNone
defocr_clipboard():
im=ImageGrab.grabclipboard()
ifimisNone:
print('Noimageinclipboard')
return
print('imagesize:%sx%s\n>>>\n'%(im.size[0],im.size[1]))
mf=io.BytesIO()
im.save(mf,'JPEG')
mf.seek(0)
buf=mf.read()
b64=base64.encodebytes(buf)
access_token=get_auth()
ifaccess_tokenisnotNone:
url='https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=%s'%access_token
data=urllib.parse.urlencode({'image':b64}).encode()
req=urllib.request.Request(url,method='POST')
req.add_header('Content-Type','application/x-www-form-urlencoded')
withurllib.request.urlopen(req,data)asp:
res=p.read().decode('utf-8')
o=json.loads(res)
ifo['words_result']isnotNone:
forwino['words_result']:
print(w['words'])
print('\n<<<')
else:
print('access_tokenisnone')
if__name__=='__main__':
x=input('ocrformclipboardimage:ztoocr,qtoquit-->')
while(x!='q'):
ifx=='z':
ocr_clipboard()
x=input('ocrfromclipboardimage:rtoocr,qtoquit-->')
print('bye')
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。