图片信息现在越来越广泛的存在于我们的日常生活中,获取图片内的文字信息也渐渐的成为当今生活中的需求,在学习完Python的基础知识后,本小白以此语言为工具,使用百度提供的图像识别接口来实现简单的图片文字提取(承蒙各位大佬关照);

学习URL:https://ai.baidu.com/docs#/OCR-Python-SDK/top

第一步:安装使用python sdk;(如果以安装pip:执行pip install baidu-aip命令即可,若有PyCharm直接在setting中配置)

第二步:导入相关库文件,新建我们的客户对象;

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)

以上代码中的APP_ID、API_KEY、SECRET_KET在自己创建的图像识别应用中都能找到;(连接地址:https://ai.baidu.com/

第三步:获取图片信息并配置相关属性;

获取本地图片信息:

""" 读取图片 """
def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()#返回文件读取对象

image = get_file_content('example.jpg')

通过URL来获取图片信息:

img = "ImageUrl" #直接提供图片链接即可

进行相关属性的配置options:(配置信息如下表所示)

""" 如果有可选参数 """
options = {}#配置字典
options["language_type"] = "CHN_ENG"#识别文字类型
options["detect_direction"] = "true"#是否检测图片的朝向
options["detect_language"] = "true"#是否检测语言
options["probability"] = "true"#是否返回置信度

字段

必选

类型

说明

language_type


string

CHN_ENG

ENG

POR

FRE

GER

ITA

SPA

RUS

JAP

KOR

识别语言类型,默认为CHN_ENG。可选值包括:

- CHN_ENG:中英文混合;

- ENG:英文;

- POR:葡萄牙语;

- FRE:法语;

- GER:德语;

- ITA:意大利语;

- SPA:西班牙语;

- RUS:俄语;

- JAP:日语;

- KOR:韩语;

detect_direction


string

true

false

是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:

- true:检测朝向;

- false:不检测朝向。

detect_language


string

true

false

是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)

probability


string

true

false

是否返回识别结果中每一行的置信度

最后根据不同的获取图片方式调用不同的操作方法即可:

'''本地图片信息'''
result=client.basicGeneral(image, options)


'''本地图片信息'''
result=client.basicGeneralUrl(url, options)
#options为可选参数,可以只提供图片文件对象或者图片url

 结果(result)的以字典类型返回,相关类型与说明如下表所示:

字段

必选

类型

说明

direction


number

图像方向,当detect_direction=true时存在。

- -1:未定义,

- 0:正向,

- 1: 逆时针90度,

- 2:逆时针180度,

- 3:逆时针270度

log_id


number

唯一的log id,用于问题定位

words_result_num


number

识别结果数,表示words_result的元素个数

words_result


array

定位和识别结果数组

+words


string

识别结果字符串

probability


object

行置信度信息;如果输入参数 probability = true 则输出

+average


number

行置信度平均值

+variance


number

行置信度方差

+min


number

行置信度最小值

返回结果样例图:

python提取文字 python提取文字图片_本地图片

完整代码:(以识别本地图片信息为例,小伙伴们可自行测试URL的操作方式)

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')#与当前py文件在同一路径下

""" 如果有可选参数 """
options = {}
options["language_type"] = "CHN_ENG"
options["detect_direction"] = "false"
options["detect_language"] = "true"
options["probability"] = "true"#配置相关参数

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

print("提取的文字信息:")
for i in result["words_result"]:
    print(i["words"])#打印图片文字信息

测试图片:(测试结果对图片的文字提取的可信度大约能在90%以上基本上能够实现对文字信息的提取)

python提取文字 python提取文字图片_API_02

测试结果:

python提取文字 python提取文字图片_API_03