名片识别信息分类python_python体验名片识别OCR

我想使用名片识别OCR,主要研究了腾讯云的智能映像和腾讯Youtu.

解析后的汉字直接是unicode,例如u'\ u90e8 \ u95e8 \ u526f \ u603b \ u7ecf \ u7406',根据腾讯的文档,代码经验:

首先,介绍一下.

import time

import random

import hmac, hashlib

import binascii

import base64

import requests

import os

import json

然后根据文档生成签名(签名权),此步骤不是很顺利. 在需要替换的位置中,自己查找文件名片识别服务,例如appid,secret_id,secret_key. 至于水桶,我不明白它的用途.

appid = 'your app id' #自己填

secret_id = 'your secret id' #自己填

secret_key = 'your secret key' #自己填

bucket= 'seem no use' #自己填

# 还有个https的,我没试

url = 'http://recognition.image.myqcloud.com/ocr/businesscard'

now = int(time.time())

rdm = random.randint(0,9999999999)

expired = now + 2592000 #一个月

plain_text = 'a='+appid+'&b='+bucket+'&k='+secret_id+'&e='+str(expired)+'&t='+str(now)+'&r='+str(rdm)+'&u=0&f='

bin = hmac.new(secret_key.encode(), plain_text.encode(), hashlib.sha1)

s = bin.hexdigest()

s = binascii.unhexlify(s)

s = s + plain_text.encode('ascii')

signature = base64.b64encode(s).rstrip() # 生成签名

print(signature)

接下来,有两种情况. 如果要识别的图像是URL,则相对简单. 设置标题和数据以发送请求. 图片网址以Utop为例. 只需打印出结果即可.

headers = {

'Authorization': signature,

'content-type': 'application/json',

}

data = {

'appid': appid,

'url_list': ['http://yoututest-1251966477.cossh.myqcloud.com/mingpian.jpg']

}

r = requests.post(url, headers=headers, data = json.dumps(data))

ret = r.json()

print(ret)

因为我不熟悉'content-type'的请求: 'multipart / form-data',所以研究了很长时间名片识别服务,后来发现它实际上很简单.

headers = {

'Authorization': signature,

# 不用设置content-type!!!

}

files = {

'appid': appid,

# 可以多张图片,但是必须image开头,路径自己设置好

'image[0]': ( 'image[0].jpeg', open(os.path.abspath('mingpian0.jpeg'), 'rb'), 'image/jpeg', {}),

# 'image[1]': ( 'image[1].jpeg', open(os.path.abspath('mingpian1.jpeg'), 'rb'), 'image/jpeg', {}),

}

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

ret = r.json()

print(ret)

您是否发现该水桶根本没有用过,没有从我的账户中扣除任何钱?也许是因为腾讯云提前付款并在下个月扣除了这笔钱吗?等一下.

Youtube的演示做得很好,吸引了我,但是关于识别结果,有几点需要注意: 首先,返回的结果很多,可能是一些原始数据. 第二,我没有得到汉字的结果编码. 它以\ x开头. 在这里,我仍然会体验到它,参考文档,它与上面的腾讯云没有太大区别.

顺便说一下,Youtu演示具有python代码. 我也从这里的简化中借用了. 每个人都知道,如果我不再次敲它,我会认为那不是真的.

首先介绍一堆.

# import 跟上面一样吧

签名部分也相似,但是存储桶已经成为申请Youtu的qq号,随便写这个字段似乎也可以.

appid = 'your app id' # 在优图申请应用后就得到

secret_id = 'your secret id' # 在优图申请应用后就得到

secret_key = 'your secret key' # 在优图申请应用后就得到

userid= 'your qq number'

url = 'http://api.youtu.qq.com/youtu/ocrapi/bcocr'

now = int(time.time())

rdm = random.randint(0,9999999999)

expired = now + 2592000

plain_text = 'u=' + userid + '&a=' + appid + '&k=' + secret_id + '&e=' + str(expired) + '&t=' + str(now) + '&r=' + str(rdm) + '&f='

bin = hmac.new(secret_key.encode(), plain_text.encode(), hashlib.sha1)

s = bin.hexdigest()

s = binascii.unhexlify(s)

s = s + plain_text.encode('ascii')

signature = base64.b64encode(s).rstrip() # 生成签名

print(signature)

还有两种情况,使用url和image,但是Utop的image方法实际上被转换为base64字符串,这相对简单.

headers = {

'Authorization': signature,

'Content-Type': 'text/json',

}

data = {

'app_id': appid,

'session_id': '',

}

# 下面自行选择字段

data['url'] = 'http://yoututest-1251966477.cossh.myqcloud.com/mingpian.jpg'

data["image"] = base64.b64encode(open(os.path.abspath('mingpian.jpeg'), 'rb').read()).rstrip().decode('utf-8')

r = requests.post(url, headers=headers, data = json.dumps(data))

ret = r.json()

print(ret)

我不会发布返回的结果.

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/ruanjian/article-208056-1.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/503897.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL进阶:子查询

一般情况下,我们都是直接对表进行查询,但有时候,想要的数据可能通过一次select 获取不到,需要嵌套select,这样就形成了子查询。 子查询可以位于查询语句的任意位置,主要的注意点在于用于不同的位置,和不同的关键字一起使用时,需要注意返回的列的数量和行的数量。 位于…

python3单例-python3如何运行文件夹python单例模式

单例模式是一种常用的软件设计模式. 在单例模式的核心结构中,只包含一个被称为单例类的特殊类. 通过单例模式可以保证系统中一个类只有一个实例,而且这个实例可以轻易被外界访问,方便控制实例对象的个数以节约系统资源. 单例模式是解决一个系统中某个类的实例化对象有且只能有一…

python json解析 超过对象_json序列化数据超出最大值(maxJsonLength)

标签:1、序列化:以下代码在对象过大时会报错:进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength 属性设置的值。//jsonObj比较大的时候会报错var serializer new JavaScriptSerializer();return serializer.Serialize(jsonOb…

native 真机测试react_react-native真机调试出现Failed to install all

使用的魅蓝note手机进行调试,没有想到就出现这个问题了。错误信息:Installing APK app-debug.apk on m1 note - 5.1 for app:debugUnable to install H:\ReactN\one\android\app\build\outputs\apk\app-debug.apkcom.android.ddmlib.InstallException: F…

android四周阴影效果_帮助独立开发者轻松创建令人惊叹的产品视觉效果

大家好,我是独立开发者Larry~作品发布、宣传交流过程中对作品进行样机包装或场景展示往往是不可或缺的,除了纯手工打造外,通常大家都会运用一些样机素材来完成对产品的快速包装,因此关于样机素材的资源网上有很多&…

python3 gui tk代码_【基础】学习笔记30-python3 tkinter GUI编程-实操12

import tkinter as tkwin tk.Tk()menu tk.Menu(win) # 创建顶层菜单filemenu tk.Menu(menu, tearoff0) # 创建二级菜单def printIterm():print(vPython, vPython.get())print(vPHP, vPHP.get())print(vCPP, vCPP.get())print(vC, vC.get())print(vJava, vJava.get())vPyth…

pythonweb全栈开发_Web全栈开发穿插路程(python+js)

简介:穿插路程,是指快去快回,来去一阵风,走的快,走马观花,没有细品。细品那就要慢慢熬功夫喽。1.完成后的效果是:用户访问入口页面,录入信息,提交后结果以逐步添加的形式…

C++和Rust_Kotlin、Rust两个充满了骚操作的编程语言,值得一玩

Kotlin和Rust都是两个年轻的编程语言,而且相比现在流行的Python、JavaScript/Typescript语言来说,Kotlin和Rust更接近底层,对于学习理解计算机原理,学习Kotlin和Rust应该是更好的选择。与C/C相比,Kotlin、Rust做上层应…

vue 渲染函数处理slot_vue render 渲染函数

vue render 渲染函数经常看到使用render渲染函数的示例,而且在一些特殊情况下,确实更好使用,可以更加有效地细分组件,因而借助vue-element-admin来学习一波render函数分析函数式组件基础的使用方式Link.vue// https://github.com/…

理发店管理系统java_美容美发店管理系统的设计与实现(JSP,SQLServer)(含录像)

美容美发店管理系统的设计与实现(,SQLServer)(含录像)(开题报告,论文12700字,程序代码,SQLServer数据库)系统功能结构本系统是根据我国美容业的现状及中小型美容院的发展需要进行详细的分析, 对美容院信息管理系统进行合理的设计, 实现集成员工管理、工资…

cpu频率_新版win10修复CPU频率显示不正确的bug

在此前win10 2020年5月更新后,有用户反馈win10任务管理器无法正确显示CPU使用率和频率,比如会出现CPU频率为0.00GHz。现在有外媒报道,微软在win10测试版19042.608中修复了CPU频率显示不正确的bug。这一消息也得到了微软的确认表示已经修复了某…

sap fiori导出列表到excel_介绍一种Fiori标准应用的增强方式

2015年,Jerry还在SAP成都研究院CRM Fiori开发团队工作时,担任了德国一个著名的灯具制造商客户的CRM Fiori项目的dev angel. 当时客户提出了若干对CRM Fiori标准应用的增强需求,总的来说分为前台Fiori UI界面的增强(比如增添新的自定义字段)以…

打桩时不修改源码_考研网上报名点了修改报名,修改后到报名点时,出现部分信息不符合参考条件,请修改或重新报名...

展开全部用户直接填写2113页面底部的黄色显示5261的验证码信息后4102,点击确认1653无误按钮,完成专报名操作,再修改相关信属息即可。但招生单位、考试方式和报考点几项不允许修改,若填写错误,只能再新增一份新的报名信…

ios 图片居中裁剪_[ iOS Shortcuts / Workflow ] 分享一个给照片批量加「底部居中偏上」水印的捷径,可适应不同水印的尺寸...

首先放链接效果示意图捷径特点本捷径的水印位置位于图片底部局中偏上的位置可自适应不同水印的尺寸可多选照片批量操作在加水印操作完成后会弹出预览,完成后点击保存或放弃选择保存后还可选择是否删除原图受益于捷径 app 本身,加水印后的图片分辨率、拍摄…

java检测kafka是否连接成功,kafka代码测试连接

1.发送:package kafka.test;import java.util.Date;import java.util.Properties;import java.util.Random;import kafka.javaapi.producer.Producer;import kafka.producer.KeyedMessage;import kafka.producer.ProducerConfig;public class KafkaProduct {public …

电脑ip地址设置_路由器动态IP和静态IP上网方式怎么设置【设置教程】

在我们设置路由器的过程中,路由器设置界面一般会给我们提供4种上网方式选项,分别是:“让路由器自动选择上网方式(推荐)”、“PPPoE(ADSL虚拟拨号)”、“动态IP(以太网宽带,自动从服务商获取IP地址)”、“静态IP(以太网宽带&#x…

PHP调整图片饱和度,window_Win10系统电脑屏幕的饱和度如何调整?,什么是饱和度? 对电脑来说 - phpStudy...

Win10系统电脑屏幕的饱和度如何调整?什么是饱和度?对电脑来说,饱和度是指色彩的鲜艳程度,也称之为色彩的纯度。Win10系统电脑屏幕的饱和度如何调整?很多朋友都不是很清楚,其实方法很简单的,下面小编就为大家详细介绍…

vue加跨域代理静态文件404_vue-cli 设置跨域代理 线上地址报404

vue-cli 设置跨域代理,本地正常访问,线上地址报404。这是什么原因?vue-cli中跨域代理设置:module.exports {dev: {// PathsassetsSubDirectory: static,assetsPublicPath: /,proxyTable: {/api: {target: https://xxx.xxx-xxx.co…

钉钉关键字回复功能_在家办公首日:钉钉、企业微信集体“崩溃”,只能选择 QQ、微信...

今日是春节假期结束后的第一个工作日,不少企业规定2月3-7日可以在家远程办公。不过尴尬的是,今日上午,钉钉、企业微信等在线办公App集体出现问题。不少网友反馈钉钉出现Bug,“不知道大家工作的怎么样,我的钉钉刚才一直…

hive 配置用户名_配置HiveServer2的安全策略之自定义用户名密码验证

具体从网上看http://doc.mapr.com/display/MapR/UsingHiveServer2#UsingHiveServer2-ConfiguringCustomAuthentication一共提供了三种安全认证方式,我们通常采用的为第三种自定义的方式。To implement custom authentication for HiveServer2, create a custom Auth…