1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Python + Baidu API 实现图片中文字的提取

Python + Baidu API 实现图片中文字的提取

时间:2024-05-21 12:42:25

相关推荐

Python + Baidu API 实现图片中文字的提取

Baidu API系统为开发者提供了许多实用的API,其中文字识别API服务功能较为成熟,如图所示已经可以满足生活中绝大多数文字识别的需求。我为大家演示一下较为基本的通用文字识别的功能。(文字识别API文档:/docs#/OCR-API/e1bd77f3)

首先,我们在调用任意一个API的时候,都需要提供专属的access_token,获取方式十分简单,只需要运行文档上的Python代码。(由于存在中文字符的注释,我已经手动添加了utf-8的编码方式)使用时需要将【官网获取的AK】和【官网获取的SK】替换为自己的AK和SK。

# coding:utf-8import urllib, urllib2, sysimport ssl# client_id 为官网获取的AK, client_secret 为官网获取的SKhost = '/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'request = urllib2.Request(host)request.add_header('Content-Type', 'application/json; charset=UTF-8')response = urllib2.urlopen(request)content = response.read()if (content):print(content)

至于AK和SK的获取方式,则需要我们自己去Baidu API 的官网登陆并注册项目后,Baidu官方会予以分配。在上一个程序成功运行后会获得一个类似下面的长字段,将access_token的内容复制下来即可。

{"access_token":"########","session_key":"9mzdWEfZrXH+LPJjs2Jk+0M\/giCXigE9SYEsg59qOhC8Oo\/6+orj6PnMKffvzZpCBI5Ph4p0PoSwa835DUdiWmKe+PVmRA==","scope":"public vis-ocr_ocr brain_ocr_scope brain_ocr_general brain_ocr_general_basic brain_ocr_general_enhanced vis-ocr_business_license brain_ocr_webimage brain_all_scope brain_ocr_idcard brain_ocr_driving_license brain_ocr_vehicle_license vis-ocr_plate_number brain_solution brain_ocr_plate_number brain_ocr_accurate brain_ocr_accurate_basic brain_ocr_receipt brain_ocr_business_license wise_adapt lebo_resource_base lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian ApsMisTest_Test\u6743\u9650 vis-classify_flower bnstest_fasf lpq_\u5f00\u653e cop_helloScope ApsMis_fangdi_permission","refresh_token":"25.dc75537152b2cc501ad6d76c1cbb0962.315360000.1831356957.282335-10693231","session_secret":"55eab565165de62c1e0ba0829763ea04","expires_in":2592000}

# coding:utf-8import urllib, urllib2, base64access_token = '############################################'url = '/rest/2.0/ocr/v1/general_basic?access_token=' + access_token# 二进制方式打开图文件f = open(r'图片地址', 'rb')# 参数image:图像base64编码img = base64.b64encode(f.read())params = {"image": img}params = urllib.urlencode(params)request = urllib2.Request(url, params)request.add_header('Content-Type', 'application/x-www-form-urlencoded')response = urllib2.urlopen(request)content = response.read()if (content):print content

上面是调用API实现的主要代码部分,“#####################”的部分用上面复制下来的access_token替代,而‘图片地址’中则写入需要识别的图片所在的地址。我对代码做了极少的修改,主要是直接从文档中复制下来的。

下面演示一下实际使用的效果。

我们从网页上直接截取了一张图片。

将其改名,并与实验代码放在同一个目录下,同时将其路径写入该脚本。

识别结果如图所示,实验证明,该API较为可靠。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。