百度OCR文字识别使用教程

说明

文字识别是百度自然场景OCR服务,依托百度业界领先的OCR算法,提供了整图文字检测、识别、整图文字识别、整图文字行定位和单字图像识别等功能。服务尚在试运行阶段,暂时未全面放开,有大规模商用需求的请联系APIStore官方,邮箱apistore@baidu.com。

暂时想到的使用场景是,将验证码图片先进行适当的预处理,去噪,切割成单个字符等,然后利用API接口进行识别。

Python 示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# -*- coding: utf-8 -*-
import sys, urllib, urllib2, json, base64
reload(sys)
sys.setdefaultencoding('utf8')
url = 'http://apis.baidu.com/apistore/idlocr/ocr'
data = {}
data['fromdevice'] = "pc"
data['clientip'] = "111.192.76.68"
data['detecttype'] = "LocateRecognize"
data['languagetype'] = "CHN_ENG"
data['imagetype'] = "1"
# 以二进制方式读取文件
f1 = open('testOCR.jpg','rb')
imagebyte = f1.read()
f1.close()
# 将字节流用BASE64编码
data['image'] = base64.b64encode(imagebyte)
# 将数据重新编码
decoded_data = urllib.urlencode(data)
req = urllib2.Request(url, data = decoded_data)
req.add_header("Content-Type", "application/x-www-form-urlencoded")
req.add_header("apikey", "903c2f23448dcb745db1e83ecc39781e")
resp = urllib2.urlopen(req)
content = resp.read()
if(content):
print(content)
content = json.loads(content)
for line in content['retData']:
print line['word']

参考资料

[1] 百度OCR文字识别