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中关于时间和日期函数的常用计算总结(time和datatime)
Mar 08 Python
详解Python 数据库 (sqlite3)应用
Dec 07 Python
Python 记录日志的灵活性和可配置性介绍
Feb 27 Python
python读取csv文件并把文件放入一个list中的实例讲解
Apr 27 Python
matplotlib subplots 设置总图的标题方法
May 25 Python
pandas通过loc生成新的列方法
Nov 28 Python
Django urls.py重构及参数传递详解
Jul 23 Python
Python异常模块traceback用法实例分析
Oct 22 Python
tensorflow使用freeze_graph.py将ckpt转为pb文件的方法
Apr 22 Python
Python基于模块Paramiko实现SSHv2协议
Apr 28 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
Dec 04 Python
python中取整数的几种方法
Nov 07 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
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
VB中的RasEnumConnections函数返回632错误解决方法
2014/07/29 PHP
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
2015/09/20 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
2017/08/02 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
jquery中选择块并改变属性值的方法
2013/07/31 Javascript
JavaScript设计模式之外观模式实例
2014/10/10 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
2015/01/09 Javascript
JavaScript中的Math.E属性使用详解
2015/06/12 Javascript
全系IE支持Bootstrap的解决方法
2015/10/19 Javascript
Bootstrap项目实战之子栏目资讯内容
2016/04/25 Javascript
jQuery轻松实现表格的隔行变色和点击行变色的实例代码
2016/05/09 Javascript
gulp-htmlmin压缩html的gulp插件实例代码
2016/06/06 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
微信小程序实现登录页云层漂浮的动画效果
2017/05/05 Javascript
浅谈vue的踩坑路
2017/08/31 Javascript
JS实现不用中间变量temp 实现两个变量值得交换方法
2018/02/04 Javascript
javacript replace 正则取字符串中的值并替换【推荐】
2018/09/13 Javascript
小程序实现展开/收起的效果示例
2018/09/22 Javascript
vue+koa2实现session、token登陆状态验证的示例
2019/08/30 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
稍微学一下Vue的数据响应式(Vue2及Vue3区别)
2019/11/21 Javascript
vue与iframe之间的信息交互的实现
2020/04/08 Javascript
Python算术运算符实例详解
2017/05/31 Python
5个很好的Python面试题问题答案及分析
2018/01/19 Python
解决使用PyCharm时无法启动控制台的问题
2019/01/19 Python
Python全栈之列表数据类型详解
2019/10/01 Python
python topk()函数求最大和最小值实例
2020/04/02 Python
CSS3色彩模式有哪些?CSS3 HSL色彩模式的定义
2016/04/26 HTML / CSS
做一个能自适应高度的textarea的示例代码
2019/09/06 HTML / CSS
意大利在线大学图书馆:Libreria universitaria
2019/07/16 全球购物
2014年财务部工作总结
2014/11/11 职场文书
个人先进事迹总结
2015/02/26 职场文书
第一节英语课开场白
2015/06/01 职场文书
Python将CSV文件转化为HTML文件的操作方法
2021/06/30 Python
Vue深入理解插槽slot的使用
2022/08/05 Vue.js