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中捕捉详细异常信息的代码示例
Sep 18 Python
Python操作Word批量生成文章的方法
Jul 28 Python
PyCharm使用教程之搭建Python开发环境
Jun 07 Python
Python使用poplib模块和smtplib模块收发电子邮件的教程
Jul 02 Python
python实现逆序输出一个数字的示例讲解
Jun 25 Python
python利用ffmpeg进行录制屏幕的方法
Jan 10 Python
python爬取cnvd漏洞库信息的实例
Feb 14 Python
关于python中的xpath解析定位
Mar 06 Python
Django模板标签中url使用详解(url跳转到指定页面)
Mar 19 Python
python的Jenkins接口调用方式
May 12 Python
python小白学习包管理器pip安装
Jun 09 Python
linux mint中搜狗输入法导致pycharm卡死的问题
Oct 28 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
《逃离塔科夫》——“萌新劝退,老手自嗨”的硬核FPS游戏
2020/04/03 其他游戏
PHP处理大量表单字段的便捷方法
2015/02/07 PHP
PHP 验证登陆类分享
2015/03/13 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
2015/12/10 PHP
浅析Yii2中GridView常见操作
2016/04/22 PHP
PHP实现数据库的增删查改功能及完整代码
2018/04/18 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
2019/10/15 PHP
javascript 时间比较实现代码
2009/10/28 Javascript
Jquery 绑定时间实现代码
2011/05/03 Javascript
jsp js鼠标移动到指定区域显示选项卡离开时隐藏示例
2013/06/14 Javascript
ie 7/8不支持trim的属性的解决方案
2014/05/23 Javascript
js中this用法实例详解
2015/05/05 Javascript
JavaScript中setMonth()方法的使用详解
2015/06/11 Javascript
javascript判断网页是关闭还是刷新
2015/09/12 Javascript
JavaScript动态检验密码强度的实现方法
2016/11/09 Javascript
微信小程序开发之数据存储 参数传递 数据缓存
2017/04/13 Javascript
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
Angularjs 事件指令详细整理
2017/07/27 Javascript
详解a++和++a的区别
2017/08/30 Javascript
浅谈vue异步数据影响页面渲染
2019/10/29 Javascript
vue实现淘宝购物车功能
2020/04/20 Javascript
详解Vue之事件处理
2020/07/10 Javascript
小程序实现列表倒计时功能
2021/01/29 Javascript
用Python的Django框架编写从Google Adsense中获得报表的应用
2015/04/17 Python
django使用html模板减少代码代码解析
2017/12/12 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
python框架flask表单实现详解
2019/11/04 Python
详解python日志输出使用配置文件格式
2021/02/10 Python
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
什么是重载?CTS、CLS和CLR分别做何解释
2012/05/06 面试题
TCP协议通讯的过程和步骤是什么
2015/10/18 面试题
个人简历自我评价
2014/01/06 职场文书
初中国旗下的演讲稿
2014/08/28 职场文书
浅谈redis五大数据结构和使用场景
2021/04/12 Redis
HTML怎么设置下划线?html文字加下划线方法
2021/12/06 HTML / CSS