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去掉行尾的换行符方法
Jan 04 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
Feb 24 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
May 17 Python
python3实现多线程聊天室
Dec 12 Python
python的schedule定时任务模块二次封装方法
Feb 19 Python
详解js文件通过python访问数据库方法
Mar 03 Python
python实现计算器功能
Oct 31 Python
django多种支付、并发订单处理实例代码
Dec 13 Python
Python3爬虫中识别图形验证码的实例讲解
Jul 30 Python
基于python制作简易版学生信息管理系统
Apr 20 Python
Python实战之实现简易的学生选课系统
May 25 Python
Python 处理表格进行成绩排序的操作代码
Jul 26 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
hessian 在PHP中的使用介绍
2010/12/13 PHP
深入理解PHP中的global
2014/08/19 PHP
WordPress中对访客评论功能的一些优化方法
2015/11/24 PHP
php数组分页实现方法
2016/04/30 PHP
PHP设计模式之装饰器模式定义与用法简单示例
2018/08/13 PHP
Laravel手动返回错误码示例
2019/10/22 PHP
Javascript 通过json自动生成Dom的代码
2010/04/01 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
JS调用页面表格导出excel示例代码
2014/03/18 Javascript
jquery仿搜索自动联想功能代码
2014/05/23 Javascript
JS实现一个按钮的方法
2015/02/05 Javascript
ECMAScript 5严格模式(Strict Mode)介绍
2015/03/02 Javascript
nodeJs内存泄漏问题详解
2016/09/05 NodeJs
Angular 2应用的8个主要构造块有哪些
2016/10/17 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
Vue通过input筛选数据
2020/10/26 Javascript
extjs简介_动力节点Java学院整理
2017/07/17 Javascript
浅谈JavaScript的innerWidth与innerHeight
2017/10/12 Javascript
AngularJs用户登录问题处理(交互及验证、阻止FQ处理)
2017/10/26 Javascript
微信小程序自定义模态弹窗组件详解
2019/12/24 Javascript
[01:06:12]VP vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[30:00]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第二场 11.28
2020/12/01 DOTA
跟老齐学Python之list和str比较
2014/09/20 Python
python采用getopt解析命令行输入参数实例
2014/09/30 Python
Python中的各种装饰器详解
2015/04/11 Python
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
2017/06/27 Python
pip安装时ReadTimeoutError的解决方法
2018/06/12 Python
Python补齐字符串长度的实例
2018/11/15 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
2020/02/25 Python
python获取栅格点和面值的实现
2020/03/10 Python
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
2014/06/16 HTML / CSS
英国最受欢迎的价格比较网站之一:MoneySuperMarket
2018/12/19 全球购物
致标枪运动员广播稿
2014/02/06 职场文书
2015年城管个人工作总结
2015/05/15 职场文书
消防安全主题班会
2015/08/12 职场文书
比较node.js和Deno
2021/04/27 Javascript