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标准库与第三方库详解
Jul 22 Python
python编写爬虫小程序
May 14 Python
python使用xslt提取网页数据的方法
Feb 23 Python
从请求到响应过程中django都做了哪些处理
Aug 01 Python
Python 通过requests实现腾讯新闻抓取爬虫的方法
Feb 22 Python
利用python实现汉字转拼音的2种方法
Aug 12 Python
解决pycharm最左侧Tool Buttons显示不全的问题
Dec 17 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
Feb 20 Python
Python3批量创建Crowd用户并分配组
May 20 Python
python之随机数函数的实现示例
Dec 30 Python
Opencv 图片的OCR识别的实战示例
Mar 02 Python
python之json文件转xml文件案例讲解
Aug 07 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 获得汉字拼音首字母的函数
2009/08/01 PHP
php 分库分表hash算法
2009/11/12 PHP
php把session写入数据库示例
2014/02/26 PHP
PHP实现多图上传(结合uploadify插件)思路分析
2016/11/30 PHP
PHP实现的随机红包算法示例
2017/08/14 PHP
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
中国地区三级联动下拉菜单效果分析
2012/11/15 Javascript
js字符串转换成xml对象并使用技巧解读
2013/04/18 Javascript
jQuery实现点击文本框弹出热门标签的提示效果
2013/11/17 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
极易被忽视的javascript面试题七问七答
2016/02/15 Javascript
JS实现的手机端精简幻灯片效果
2016/09/05 Javascript
node安装--linux下的快速安装教程
2017/03/21 Javascript
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
layui 给数据表格加序号的方法
2018/08/20 Javascript
javascript获取元素的计算样式
2019/05/24 Javascript
vue与django集成打包的实现方法
2019/11/11 Javascript
JavaScript实现猜数字游戏
2020/05/20 Javascript
微信小程序实现简单文字跑马灯
2020/05/26 Javascript
python代码制作configure文件示例
2014/07/28 Python
Python远程桌面协议RDPY安装使用介绍
2015/04/15 Python
使用Python爬取最好大学网大学排名
2018/02/24 Python
pycharm 将python文件打包为exe格式的方法
2019/01/16 Python
centos 安装Python3 及对应的pip教程详解
2019/06/28 Python
django基于存储在前端的token用户认证解析
2019/08/06 Python
Mac 使用python3的matplot画图不显示的解决
2019/11/23 Python
Anthropologie英国:美国家喻户晓的休闲服装和家居产品品牌
2018/12/05 全球购物
参观接待方案
2014/03/17 职场文书
无犯罪记录证明范本
2014/09/15 职场文书
2014年小学国庆节活动方案
2014/09/16 职场文书
《微笑着面对生活》优秀演讲稿范文
2014/09/23 职场文书
2014年感恩节活动策划方案
2014/10/06 职场文书
2014年保洁工作总结
2014/11/24 职场文书
2014年村官工作总结
2014/11/24 职场文书
七年级作文之雪景
2019/11/18 职场文书
Vue鼠标滚轮滚动切换路由效果的实现方法
2021/08/04 Vue.js