Python图片文字提取

图片信息现在越来越广泛的存在于我们的日常生活中,获取图片内的文字信息也渐渐的成为当今生活中的需求,在学习完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_typestringCHN_ENG
ENG
POR
FRE
GER
ITA
SPA
RUS
JAP
KOR
识别语言类型,默认为CHN_ENG。可选值包括:
- CHN_ENG:中英文混合;
- ENG:英文;
- POR:葡萄牙语;
- FRE:法语;
- GER:德语;
- ITA:意大利语;
- SPA:西班牙语;
- RUS:俄语;
- JAP:日语;
- KOR:韩语;
detect_directionstringtrue
false
是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:
- true:检测朝向;
- false:不检测朝向。
detect_languagestringtrue
false
是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
probabilitystringtrue
false
是否返回识别结果中每一行的置信度

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

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


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

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

字段必选类型说明
directionnumber图像方向,当detect_direction=true时存在。
- -1:未定义,
- 0:正向,
- 1: 逆时针90度,
- 2:逆时针180度,
- 3:逆时针270度
log_idnumber唯一的log id,用于问题定位
words_result_numnumber识别结果数,表示words_result的元素个数
words_resultarray定位和识别结果数组
+wordsstring识别结果字符串
probabilityobject行置信度信息;如果输入参数 probability = true 则输出
+averagenumber行置信度平均值
+variancenumber行置信度方差
+minnumber行置信度最小值

返回结果样例图:

完整代码:(以识别本地图片信息为例,小伙伴们可自行测试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%以上基本上能够实现对文字信息的提取)

测试结果:

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值