python 3调用百度OCR API实现剪贴板文字识别
作者:方工 发布时间:2022-12-13 19:01:14
标签:python,OCR,API,文字识别
本程序调用百度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')
来源:https://blog.csdn.net/onestab/article/details/79091289
0
投稿
猜你喜欢
- <table> <tr> &nb
- theme: channing-cyan网页伪静态将 * 页伪装成静态网页,可以提升网页被搜索引擎检索道德概率表现形式为:网址看着像是一个具
- 有时我们会碰到类似下面这样的 unicode 字符串:u'\xe4\xbd\xa0\xe5\xa5\xbd'这明显不是一个正
- Python批量识别图片指定区域文字内容,供大家参考,具体内容如下简介对于一张图片,需求识别指定区域的内容1.截取原始图上的指定图片当做模板
- 本文实例讲述了python实现爬取千万淘宝商品的方法。分享给大家供大家参考。具体实现方法如下:import timeimport level
- 1. 排名函数与PARTITION BY --所有数据 SELECT * FROM dbo.student AS a INNER JOIN
- 1. Python字典的clear()方法(删除字典内所有元素)#!/usr/bin/python# -*- coding: UTF-8 -
- ADO对象: Connection Command Recordset Record Stream ASP支持的对象很多,可以自己编写COM
- 本文实例讲述了python自动化测试之从命令行运行测试用例with verbosity,分享给大家供大家参考。具体如下:实例文件recipe
- Update Scanner这个Firefox附加软件也是一种很好的选择。Update Scanner可以同时跟踪多个网页,并为不同的网页设
- Django 中自带了 sitemap框架,用来生成 xml 文件Sitemap(站点地图)是通知搜索引擎页面的地址,页面的重要性,帮助站点
- 很简单,只需建立一个worksheet和Excel相关的信息就可以了具体代码见下:<%set xlApp =&nb
- 微服务架构中收集通常大家都采用ELK进行日志收集,同时我们还采用了SkyWalking进行链路跟踪,而SkyWalking数据存储也用到了E
- jinjia和vue.js默认的模板转义符都是{{}}目前的解决办法是修改vue.js的转义符,将原来的{{}}替换为其他标签,我改为{[]
- < % Response.CharSet="gb2312" tblna
- 找到一句可以获得当前最新ID的语句,如下:conn.execute("insert into member (user,code)
- 问题:在使用mask_rcnn预测自己的数据集时,会出现下面错误:ResourceExhaustedError: OOM when allo
- 在Python2中datetime对象没有timestamp方法,不能很方便的生成epoch,现有方法没有处理很容易导致错误。关于Epoch
- Python中可以使用 pickle 模块将对象转化为文件保存在磁盘上,在需要的时候再读取并还原。具体用法如下:pickle是Python库
- 使用 WinHttpRequest 伪造 HTTP 头信息,伪造 Referer 等信息。由于微软封锁了 XmlHttp 对象,所以无法伪造