python调用百度接口实现ocr识别_python 3调用百度OCR API实现剪贴板文字识别

#!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')

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值