Python3实现腾讯云OCR识别

yipeiwu_com5年前Python基础

废话不多说,在网上找了下腾讯云OCR识别的,示例不多,用Python的还是Python2.7,花了点时间改成Python3的。
先上图,腾讯自己的示例图:


下面是代码:

import requests
import hmac
import hashlib
import base64
import time
import random
import re


appid = "你自己的appid"
bucket = " 这个是优图上面的,可以不填" #参考本文开头提供的链接
secret_id = "填自己的" #参考官方文档
secret_key = "填自己的" #同上
expired = time.time() + 2592000
onceExpired = 0
current = time.time()
rdm = ''.join(random.choice("0123456789") for i in range(10))
userid = "0"
fileid = "tencentyunSignTest"

info = "a=" + appid + "&b=" + bucket + "&k=" + secret_id + "&e=" + str(expired) + "&t=" + str(current) + "&r=" + str(
 rdm) + "&u=0&f="

signindex = hmac.new(bytes(secret_key,'utf-8'),bytes(info,'utf-8'), hashlib.sha1).digest() # HMAC-SHA1加密
sign = base64.b64encode(signindex + bytes(info,'utf-8')) # base64转码,也可以用下面那行转码
#sign=base64.b64encode(signindex+info.encode('utf-8'))

url = "http://recognition.image.myqcloud.com/ocr/general"
headers = {'Host': 'recognition.image.myqcloud.com',
   "Authorization": sign,
   }
files = {'appid': (None,appid),
 'bucket': (None,bucket),
 'image': ('1.jpg',open('D:/codes/images/form.jpg','rb'),'image/jpeg')
 }  

r = requests.post(url, files=files,headers=headers)

responseinfo = r.content
data = responseinfo.decode('utf-8')

r_index = r'itemstring":"(.*?)"' # 做一个正则匹配
result = re.findall(r_index, data)
for i in result:

 print(i)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python函数与方法的区别总结

(1)函数的分类: 内置函数:python内嵌的一些函数。 匿名函数:一行代码实现一个函数功能。 递归函数 自定义函数:根据自己的需求,来进行定义函数。 (2)方法的分类: 普通方法:直...

Python数据类型之列表和元组的方法实例详解

Python数据类型之列表和元组的方法实例详解

引言 我们前面的文章介绍了数字和字符串,比如我计算今天一天的开销花了多少钱我可以用数字来表示,如果是整形用 int ,如果是小数用 float ,如果你想记录某件东西花了多少钱,应该使用...

使用Python进行防病毒免杀解析

使用Python进行防病毒免杀解析

很多渗透工具都提供了权限维持的能力,如Metasploit、Empire和Cobalt Strike,但是都会被防病毒软件检测到这种恶意行为。在探讨一个权限维持技巧的时候,似乎越来越多的...

在tensorflow中实现去除不足一个batch的数据

我就废话不多说了,直接上代码吧! #-*- coding:utf-8 -*- import tensorflow as tf import numpy as np value1...

python使用pandas处理大数据节省内存技巧(推荐)

python使用pandas处理大数据节省内存技巧(推荐)

一般来说,用pandas处理小于100兆的数据,性能不是问题。当用pandas来处理100兆至几个G的数据时,将会比较耗时,同时会导致程序因内存不足而运行失败。 当然,像Spark这类的...