首页 > 编程 > Python > 正文

python 3调用百度OCR API实现剪贴板文字识别

2020-02-15 22:53:48
字体:
来源:转载
供稿:网友

本程序调用百度OCR API对剪贴板的图片文字识别,配合CaptureScreen软件,可快速识别文字。

#!python3import urllib.request, urllib.parseimport os, io, sys, json, socketimport base64from PIL import ImageGrab socket.setdefaulttimeout(30) def get_auth():  apikey = 'your apikey'  secret_key = 'your secret key'  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())    return o['access_token']  return None def ocr_clipboard():  im = ImageGrab.grabclipboard()  if im is None:    print('No image in clipboard')    return  print('image size: %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()  if access_token is not None:    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')    with urllib.request.urlopen(req, data) as p:      res = p.read().decode('utf-8')      o = json.loads(res)      if o['words_result'] is not None:        for w in o['words_result']:          print(w['words'])      print('/n<<<')  else:    print('access_token is none') if __name__ == '__main__':   x = input('ocr form clipboard image: z to ocr, q to quit-->')  while(x != 'q'):    if x=='z':      ocr_clipboard()    x = input('ocr from clipboard image: r to ocr, q to quit-->')  print('bye')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林站长站。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表