首先来看一下识别的效果:这里需要完整代码以及SDK的请点击此处下载:百度文字识别OCR-通用文字识别

首先需要注册百度账号并且创建对应的应用,这里具体方法如图:

访问:http://ai.baidu.com/  点击控制台

登录后创建应用:

 此处注意:图像处理中的各项功能共用的是一个SDK包,只是不同功能实现的时候使用的函数以及返回参数不同,点击完创建应用后就可以生成三个我们后期识别过程中必须使用的参数:AppID,API Key和secert key,这里我们可以点击查看应用详情来获取

 

 

 

 

至此,前期的准备工作就完成了,这时我们通过Pip或者官网直接下载SDK包,pip下载指令为:

这里支持Python版本:2.7.+ ,3.+

如果已安装pip,执行pip install baidu-aip即可。
如果已安装setuptools,执行python setup.py install即可。

接下来,在下载的SDK文档下新建Python文件,当然你也可以使用导入包的模式:

然后创建一个AipOcr(亦可以简单的理解为一个和百度的一个连接),这里代码为:

from aip import AipOcr

""" 你的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

完成上述工作后我们就可以正式进入到文字识别的实现过程了,具体的官方代码为:

""" 读取图片 """
def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()

image = get_file_content('example.jpg')

""" 调用通用文字识别, 图片参数为本地图片 """
client.basicGeneral(image);

""" 如果有可选参数 """
options = {}
options["language_type"] = "CHN_ENG"
options["detect_direction"] = "true"
options["detect_language"] = "true"
options["probability"] = "true"

""" 带参数调用通用文字识别, 图片参数为本地图片 """
client.basicGeneral(image, options)

url = "http//www.x.com/sample.jpg"

""" 调用通用文字识别, 图片参数为远程url图片 """
client.basicGeneralUrl(url);

""" 如果有可选参数 """
options = {}
options["language_type"] = "CHN_ENG"
options["detect_direction"] = "true"
options["detect_language"] = "true"
options["probability"] = "true"

""" 带参数调用通用文字识别, 图片参数为远程url图片 """
client.basicGeneralUrl(url, options)

注意:这里的一些请求参数的具体含义为:

参数名称 是否必选 类型 可选值范围 默认值 说明
image string     图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
url string     图片完整URL,URL长度不超过1024字节,URL对应的图片base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式,当image字段存在时url字段失效
language_type string CHN_ENG
ENG
POR
FRE
GER
ITA
SPA
RUS
JAP
KOR
CHN_ENG 识别语言类型,默认为CHN_ENG。可选值包括:
- CHN_ENG:中英文混合;
- ENG:英文;
- POR:葡萄牙语;
- FRE:法语;
- GER:德语;
- ITA:意大利语;
- SPA:西班牙语;
- RUS:俄语;
- JAP:日语;
- KOR:韩语;
detect_direction string true
false
false 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:
- true:检测朝向;
- false:不检测朝向。
detect_language string true
false
false 是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
probability string true
false
  是否返回识别结果中每一行的置信度

在这里,博主在原有代码的基础上还将返回的具体数值写入文件以方便后期的处理,具体实现的完整代码为:

from aip import AipOcr
import json

""" 你的 APPID AK SK """
APP_ID = ''
API_KEY = ''
SECRET_KEY = ' '

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

""" 读取图片 """
def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()
image = get_file_content('ocr2.jpg')

""" 如果有可选参数 """
options = {}
""" 识别语言类型 """
options["language_type"] = "CHN_ENG"
""" 检测图片朝向 """
options["detect_direction"] = "false"
""" 检测语言 """
options["detect_language"] = "false"
""" 置信度 """
options["probability"] = "false"

""" 带参数调用通用文字识别, 图片参数为本地图片 """
result=client.basicGeneral(image, options)
print(result)
result_txt=json.dumps(result,ensure_ascii=False)
file = open('result.ini', 'w')  # 打开文件
file.write(result_txt)  # 写入
file.close()