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爬虫给孩子起个好名字
Feb 14 Python
关于Pycharm无法debug问题的总结
Jan 19 Python
scikit-learn线性回归,多元回归,多项式回归的实现
Aug 29 Python
Python中如何将一个类方法变为多个方法
Dec 30 Python
Pytorch对Himmelblau函数的优化详解
Feb 29 Python
在python中实现求输出1-3+5-7+9-......101的和
Apr 02 Python
python中的django是做什么的
Jul 31 Python
Django中ORM的基本使用教程
Dec 22 Python
Pyecharts 中Geo函数常用参数的用法说明
Feb 01 Python
python中numpy.empty()函数实例讲解
Feb 05 Python
python生成随机数、随机字符、随机字符串
Apr 06 Python
python在package下继续嵌套一个package
Apr 14 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简单处理表单输入的特殊字符的方法
2016/02/03 PHP
使用PHP免费发送定时短信的实例
2016/10/24 PHP
Laravel中unique和exists验证规则的优化详解
2018/01/28 PHP
TNC vs BOOM BO3 第一场2.13
2021/03/10 DOTA
JS实现的省份级联实例代码
2013/06/24 Javascript
div失去焦点事件实现思路
2014/04/22 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
2014/05/28 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
2015/02/11 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
2015/09/09 Javascript
js判断某个字符出现的次数的简单实例
2016/06/03 Javascript
JS在浏览器中解析Base64编码图像
2017/02/09 Javascript
JavaScript用200行代码制作打飞机小游戏实例
2017/06/21 Javascript
基于vue.js的分页插件详解
2017/11/27 Javascript
JavaScript设计模式之模板方法模式原理与用法示例
2018/08/07 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
Vant Weapp组件踩坑:picker的初始赋值解决
2020/11/12 Javascript
python 实现文件的递归拷贝实现代码
2012/08/02 Python
python单链表实现代码实例
2013/11/21 Python
简介Python中用于处理字符串的center()方法
2015/05/18 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
tensorflow实现加载mnist数据集
2018/09/08 Python
pandas 快速处理 date_time 日期格式方法
2018/11/12 Python
css3中检验表单的required,focus,valid和invalid样式
2014/02/21 HTML / CSS
基于第一个PhoneGap(cordova)的应用详解
2013/05/03 HTML / CSS
Anthropologie英国:美国家喻户晓的休闲服装和家居产品品牌
2018/12/05 全球购物
车库门开启器、遥控器和零件:Chamberlain
2019/04/09 全球购物
shell程序如何生命变量?shell变量是弱变量吗?
2014/11/10 面试题
文艺晚会主持词
2014/03/24 职场文书
班主任班级寄语大全
2014/04/04 职场文书
模特大赛策划方案
2014/05/28 职场文书
租房协议书样本
2014/08/20 职场文书
公证委托书格式
2014/09/13 职场文书
幼儿园国庆节活动总结
2015/03/23 职场文书
小学安全教育主题班会
2015/08/12 职场文书
2016年班主任新年寄语
2015/08/18 职场文书
详细介绍Next.js脚手架完整搭建封装
2022/04/26 Javascript