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 相关文章推荐
python3.3实现乘法表示例
Feb 07 Python
Python yield 小结和实例
Apr 25 Python
Python正则简单实例分析
Mar 21 Python
Python基于回溯法子集树模板解决0-1背包问题实例
Sep 02 Python
python爬虫_微信公众号推送信息爬取的实例
Oct 23 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
Nov 29 Python
基于numpy.random.randn()与rand()的区别详解
Apr 17 Python
python2 与 python3 实现共存的方法
Jul 12 Python
Python的matplotlib绘图如何修改背景颜色的实现
Jul 16 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
Aug 06 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
Jul 14 Python
Python自动创建Excel并获取内容
Sep 16 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中foreach()用法汇总
2015/07/02 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
2017/02/04 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
2020/04/23 PHP
JavaScript访问样式表代码
2010/10/15 Javascript
JavaScript高级程序设计阅读笔记(十六) javascript检测浏览器和操作系统-detect.js
2012/08/14 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
2012/12/21 Javascript
jQuery+css实现图片滚动效果(附源码)
2013/03/18 Javascript
js调用图片隐藏&amp;显示实现代码
2013/09/13 Javascript
使用jQuery实现验证上传图片的格式与大小
2014/12/03 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
2016/01/23 Javascript
利用Js+Css实现折纸动态导航效果实例源码
2017/01/25 Javascript
javascript 删除数组元素和清空数组的简单方法
2017/02/24 Javascript
ES6 fetch函数与后台交互实现
2018/11/14 Javascript
浅谈一种让小程序支持JSX语法的新思路
2019/06/16 Javascript
Nodejs监听日志文件的变化的过程解析
2019/08/04 NodeJs
jQuery实现简单弹幕效果
2019/11/28 jQuery
JavaScript中CreateTextFile函数
2020/08/30 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
Cpy和Python的效率对比
2015/03/20 Python
教大家使用Python SqlAlchemy
2016/02/12 Python
python的构建工具setup.py的方法使用示例
2017/10/23 Python
利用Python如何批量修改数据库执行Sql文件
2018/07/29 Python
使用Python开发SQLite代理服务器的方法
2018/12/07 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
Django app配置多个数据库代码实例
2019/12/17 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
2020/01/16 Python
python 深度学习中的4种激活函数
2020/09/18 Python
HTML5之SVG 2D入门7—SVG元素的重用与引用
2013/01/30 HTML / CSS
北欧最好的童装网上商店:Babyshop
2019/09/15 全球购物
婚礼新郎父母答谢词
2014/01/16 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
《槐乡的孩子》教学反思
2016/02/20 职场文书
有关信念的名言语录集锦
2019/12/06 职场文书
Python 实现定积分与二重定积分的操作
2021/05/26 Python
Mysql数据库手动及定时备份步骤
2021/11/07 MySQL
angular4实现带搜索的下拉框
2022/03/25 Javascript