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制作最美应用的爬虫
Oct 28 Python
Python中使用装饰器来优化尾递归的示例
Jun 18 Python
python http接口自动化脚本详解
Jan 02 Python
终端命令查看TensorFlow版本号及路径的方法
Jun 13 Python
在python中使用requests 模拟浏览器发送请求数据的方法
Dec 26 Python
Python缓存技术实现过程详解
Sep 25 Python
安装Pycharm2019以及配置anconda教程的方法步骤
Nov 11 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
Jan 25 Python
python实现银行实战系统
Feb 26 Python
Python中使用threading.Event协调线程的运行详解
May 02 Python
利用Python的folium包绘制城市道路图的实现示例
Aug 24 Python
Python几种酷炫的进度条的方式
Apr 11 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删除指定目录的方法
2015/04/03 PHP
thinkPHP导出csv文件及用表格输出excel的方法
2015/12/30 PHP
php文件上传的两种实现方法
2016/04/04 PHP
PC端微信扫码支付成功之后自动跳转php版代码
2017/07/07 PHP
Javascript 获取链接(url)参数的方法
2009/02/15 Javascript
使用IE6看老赵的博客 jQuery初探
2010/01/17 Javascript
javascript+iframe 实现无刷新载入整页的代码
2010/03/17 Javascript
关于firefox的ElementTraversal 接口 使用说明
2010/11/11 Javascript
基于jquery的下拉框改变动态添加和删除表格实现代码
2020/09/12 Javascript
JS 删除字符串最后一个字符的实现代码
2014/02/20 Javascript
javascript基本包装类型介绍
2015/04/10 Javascript
原生js和jquery实现图片轮播淡入淡出效果
2015/04/23 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
2015/10/15 Javascript
Knockoutjs 学习系列(二)花式捆绑
2016/06/07 Javascript
JSONP基础知识详解
2017/03/19 Javascript
js实现Tab选项卡切换效果
2020/07/17 Javascript
vue2.0 和 animate.css的结合使用
2017/12/12 Javascript
nodejs用gulp管理前端文件方法
2018/06/24 NodeJs
vue响应式系统之observe、watcher、dep的源码解析
2019/04/09 Javascript
vue回到顶部监听滚动事件详解
2019/08/02 Javascript
微信小程序webview与h5通过postMessage实现实时通讯的实现
2019/08/20 Javascript
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
nuxt.js添加环境变量,区分项目打包环境操作
2020/11/06 Javascript
python3实现ftp服务功能(客户端)
2017/03/24 Python
利用python批量给云主机配置安全组的方法教程
2017/06/21 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
2018/01/17 Python
python实现csv格式文件转为asc格式文件的方法
2018/03/23 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
Python动态强类型解释型语言原理解析
2020/03/25 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
2020/06/29 Python
django美化后台django-suit的安装配置操作
2020/07/12 Python
详解BeautifulSoup获取特定标签下内容的方法
2020/12/07 Python
加多宝凉茶广告词
2014/03/18 职场文书
雾霾停课通知
2015/04/24 职场文书
大学生社会实践活动总结报告
2015/05/06 职场文书
基于tensorflow权重文件的解读
2021/05/26 Python