有时候工作需要或者学习需要,总需要调用到一些企业开放的API接口,虽然开放,但大多数并不免费,有些会有每天的调用限额,比如百度的行驶证识别每天好像是100次的免费试用额度,超过就得收钱了,本文主要是利用python调用易道博识的文字识别中的行驶证识别,其他识别估计也差不多,废话不多说,开始干正事儿哈哈:
先附上易道博识的行驶证识别的地址:http://ai.exocr.com/veCardDetail
点开后可以看到效果
关键地方我手动打了马克,毕竟设计到隐私,不过总体看,效果还是不错的,至少这张图没有一个文字识别错误。(博主没有收钱,不是打广告,纯粹是用过百度腾讯的接口,自我感觉博道做的不差,当然了也就这一张来说,更多需要靠大伙去验证了)
然后进首页点击右上方的控制台并---进入我的应用如下:
完善信息并得到一个下边的
其中APPKey , 和 APPSecret很重要需要记下,API调用时会需要用到
再次点进首页,找到帮助,并进入帮助中心的文字识别部分:
然后发现,它里边的教程是用java写的,也就是将它翻译成python即可
第一部分,导入所有要用的模块,可能有些用不到,我反正就是每次用的时候就是导入一堆,哈哈,简单粗暴
#! /usr/bin/python # -*- coding:UTF-8 -*- import urllib import hashlib import time import random import string import base64 from urllib.parse import quote import requests import json import os
再定义接口地址:
url = 'http://api.exocr.com/ocr/v1/vehicle_license'
再定义刚才的appkey和appsecret:
app_key = 'de0cfed681e544b9914a05ec85280ffe' app_secret = '54d4a66037167ac7bf77dfb4791b1aef'
定义你要识别的图片,用路径或者用base64编码都行,也可以用url形式,我用的是base64编码格式:
imagefile = 'D:/testimg1.jpg' f = base64.b64encode(open(imagefile, 'rb').read()) imgdata = f params = { 'app_key': app_key, 'app_secret': app_secret, # 'image_url': imagefile, 'image_base64': imgdata }
然后在用request发送并请求数据:
result_ = requests.post(url, data=params) string_result = result_.text result_ = json.loads(string_result) print(result_) print(string_result)
打印出来的结果:
哈哈,涉及到隐私部分又马克了。见谅!
到这里就完了,如果要批量处理,加一个for循环批量读进来图片即可,这里就不多说了,如果要更好的利用参数信息,大家可以多看看易道博识的帮助文档,虽然是用java写的,但是用python的伙伴多看看还是不难的,比较简单,还有很多参数的介绍。