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浅拷贝与深拷贝用法实例
May 09 Python
Python内置函数 next的具体使用方法
Nov 24 Python
python编程嵌套函数实例代码
Feb 11 Python
Python框架Flask的基本数据库操作方法分析
Jul 13 Python
Python3随机漫步生成数据并绘制
Aug 27 Python
numpy给array增加维度np.newaxis的实例
Nov 01 Python
python实现beta分布概率密度函数的方法
Jul 08 Python
Django框架创建项目的方法入门教程
Nov 04 Python
Python 解码Base64 得到码流格式文本实例
Jan 09 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
Mar 20 Python
pandas参数设置的实用小技巧
Aug 23 Python
python基于win32api实现键盘输入
Dec 09 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制作的意见反馈表源码
2007/03/11 PHP
php表单转换textarea换行符的方法
2010/09/10 PHP
ThinkPHP开发框架函数详解:C方法
2015/08/14 PHP
php自定义扩展名获取函数示例
2016/12/12 PHP
php获取文章内容第一张图片的方法示例
2017/07/03 PHP
php设计模式之工厂模式用法经典实例分析
2019/09/20 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
jquery 操作单选框,复选框,下拉列表实现代码
2009/10/27 Javascript
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
node.js中的path.extname方法使用说明
2014/12/09 Javascript
jQuery中:checked选择器用法实例
2015/01/04 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
2016/11/26 Javascript
Vue 实现双向绑定的四种方法
2018/03/16 Javascript
js+css实现打字效果
2020/06/24 Javascript
layui select获取自定义属性方法
2018/08/15 Javascript
微信小程序实现手势滑动效果
2019/08/26 Javascript
详解BootStrap表单验证中重置BootStrap-select验证提示不清除的坑
2019/09/17 Javascript
[03:48]DOTA2完美大师赛主赛事第二日精彩集锦
2017/11/24 DOTA
[47:50]Secret vs VP 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[46:53]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python 删除列表里所有空格项的方法总结
2018/04/18 Python
解决Python plt.savefig 保存图片时一片空白的问题
2019/01/10 Python
python打开windows应用程序的实例
2019/06/28 Python
Django高级编程之自定义Field实现多语言
2019/07/02 Python
pandas DataFrame行或列的删除方法的实现示例
2019/08/02 Python
对Django 转发和重定向的实例详解
2019/08/06 Python
使用python绘制二维图形示例
2019/11/22 Python
python 实现turtle画图并导出图片格式的文件
2019/12/07 Python
python实现图像全景拼接
2020/03/27 Python
python matplotlib实现将图例放在图外
2020/04/17 Python
Python如何实现的二分查找算法
2020/05/27 Python
什么是Python中的匿名函数
2020/06/02 Python
师范学院美术系毕业生自我鉴定
2014/01/29 职场文书
退伍老兵事迹材料
2014/01/31 职场文书
导游词之山东八大关
2019/12/18 职场文书
如何在CSS中绘制曲线图形及展示动画
2021/05/24 HTML / CSS