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


Posted in Python onSeptember 04, 2018

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

#!python3
import urllib.request, urllib.parse
import os, io, sys, json, socket
import base64
from 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')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python创建临时文件夹的方法
Jul 06 Python
利用Python脚本实现ping百度和google的方法
Jan 24 Python
windows下python之mysqldb模块安装方法
Sep 07 Python
python多任务及返回值的处理方法
Jan 22 Python
在Python中如何传递任意数量的实参的示例代码
Mar 21 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
Aug 16 Python
Python 使用多属性来进行排序
Sep 01 Python
使用 Python 在京东上抢口罩的思路详解
Feb 27 Python
python能在浏览器能运行吗
Jun 17 Python
Python实现自动装机功能案例分析
Oct 22 Python
python使用selenium爬虫知乎的方法示例
Oct 28 Python
运行python提示no module named sklearn的解决方法
Nov 29 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
Sep 04 #Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
Sep 04 #Python
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
Sep 04 #Python
selenium+python实现自动化登录的方法
Sep 04 #Python
python使用scrapy发送post请求的坑
Sep 04 #Python
解决win64 Python下安装PIL出错问题(图解)
Sep 03 #Python
Python全局变量与局部变量区别及用法分析
Sep 03 #Python
You might like
fgetcvs在linux的问题
2012/01/15 PHP
PHP中array_map与array_column之间的关系分析
2014/08/19 PHP
php采用curl实现伪造IP来源的方法
2014/11/21 PHP
php 删除cookie方法详解
2014/12/01 PHP
PHP获取远程图片并保存到本地的方法
2015/05/12 PHP
PHP实现GIF图片验证码
2015/11/04 PHP
如何在Laravel之外使用illuminate组件详解
2020/09/20 PHP
人人网javascript面试题 可以提前实现下
2012/01/05 Javascript
javascript之典型高阶函数应用介绍二
2013/01/10 Javascript
Node.js入门教程:在windows和Linux上安装配置Node.js图文教程
2014/08/14 Javascript
基于JavaScript操作DOM常用的API小结
2015/12/01 Javascript
实例讲解js验证表单项是否为空的方法
2016/01/09 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
NodeJs安装npm包一直失败的解决方法
2017/04/28 NodeJs
js注册时输入合法性验证方法
2017/10/21 Javascript
electron实现qq快捷登录的方法示例
2018/10/22 Javascript
Vue 样式绑定的实现方法
2019/01/15 Javascript
jQuery实现的点击显示隐藏下拉菜单功能完整示例
2019/05/17 jQuery
Vue数据驱动表单渲染,轻松搞定form表单
2019/07/19 Javascript
小程序实现日历左右滑动效果
2019/10/21 Javascript
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
[45:15]Optic vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
Python使用django获取用户IP地址的方法
2015/05/11 Python
wxPython使用系统剪切板的方法
2015/06/16 Python
python3中dict(字典)的使用方法示例
2017/03/22 Python
Python对列表去重的多种方法(四种方法)
2017/12/05 Python
美国百年历史早餐食品供应商:Wolferman’s
2017/01/18 全球购物
Belstaff英国官方在线商店:Belstaff.co.uk
2021/02/09 全球购物
Delphi软件工程师试题
2013/01/29 面试题
师范生实习个人的自我评价
2013/09/28 职场文书
团员的自我评价
2013/12/01 职场文书
工作自我评价怎么写
2014/01/29 职场文书
员工廉洁自律承诺书
2014/05/26 职场文书
2016清明节森林防火广播稿
2015/12/17 职场文书
2016教师政治学习心得体会
2016/01/23 职场文书
Nginx使用Lua模块实现WAF的原理解析
2021/09/04 Servers