python识别图片文字_python3 图片文字识别

最近用到了图片文字识别这个功能,从网上搜查了一下,决定利用百度的文字识别接口。通过测试发现文字识别率还可以。下面就测试过程简要说明一下

1、注册用户

少量使用,免费

194720-20190402113304250-1345864688.png

2、创建一个应用

194720-20190402134556734-1874160158.png

3、调用方式

首先 安装  pip install baidu-aip

具体实现代码:

from aip importAipOcrclassbaiduApi:def __init__(self,APP_ID,API_KEY,SECRET_KEY):'''""" 你的 APPID AK SK """

APP_ID = '你的 App ID'

API_KEY = '你的 Api Key'

SECRET_KEY = '你的 Secret Key''''self.client=AipOcr(APP_ID, API_KEY, SECRET_KEY)"""读取图片"""

defget_file_content(self,imageFile):

with open(imageFile,'rb') as fp:returnfp.read()defgetWordFromImage(self,imageFile):

image=self.get_file_content(imageFile)

result=self.client.basicGeneral(image)print(result)

if __name__=="__main__":

APP_ID='15307894'API_KEY='eT4rkU2i2X2quti4Z5kIl8dT'SECRET_KEY='UCo2WIQoMq12TR98Nm2N1PgfhWT47'obj=baiduApi(APP_ID,API_KEY,SECRET_KEY)

imageFile='E:\\test5.png'obj.getWordFromImage(imageFile)

另外一种调用方式

【如果您对于使用API调用的方式很陌生,您可以参见:【只要10分钟 快速掌握文字识别】 教程

可以利用调用方式一

首先获取access_token:

注意:access_token的有效期为30天,需要每30天进行定期更换;

获取后access_token,例如文字识别API,使用HTTPS POST发送:

https://aip.baidubce.com/rest/2.0/ocr/v1/general?access_token=24.f9ba9c5241b67688bb4adbed8bc91dec.2592000.1485570332.282335-8574074

importrequestsimportjsonimportbase64importosclassbaiduApi:def __init__(self):pass

def getAccess_Token(self,ApiKey='aTdOkc2i4X2qutd4Z5kIl8dT',SecretKey='UCodWIQgMq1NZTRdNmMNduN1PgfhWT47'):

url='https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=%s&client_secret=%s'%(ApiKey,SecretKey)

txt=requests.get(url).text

dict1=eval(txt)

access_token= dict1.get('access_token')print(access_token)returnaccess_token#txt ={"refresh_token":"25.0dc809836ad8546c79547ec12b4bf9d7.315360000.1869465297.282335-15907896","expires_in":2592000,

#"session_key":"9mzdWESprZJdkHm0iQOcHGX2Rn2qTwQ6Q9NIKPHwTu\/DC9HqDzZzo8JJRfsE4q5OnATglorWcPy9WRFLKlrptCbdDx\/Dug==",

#"access_token":"24.c4bab673c3edbe30eb334df37d4cf434.2592000.1556697297.282335-15907896"}

# #access_token = txt.get('access_token')

#print(access_token)

defgetdata(self,imageFile,access_token):

imageBase64=Noneifos.path.exists(imageFile):

with open(imageFile,'rb') as f: #以二进制读取图片

data =f.read()

imageBase64=base64.b64encode(data).decode()ifimageBase64:

data1= {'image_type': 'BASE64','image': imageBase64,'group_id': 'group001','user_id': 'D001'}

headers= {'Content-type': 'application/x-www-form-urlencoded'}

url= 'https://aip.baidubce.com/rest/2.0/ocr/v1/general?access_token=%s' %access_token#post调用方式

response = requests.post(url, data=data1, headers=headers)

dict1=json.loads(response.text)#print(dict1)

words_result = dict1.get('words_result')

word= ''

for wd inwords_result:

word= wd.get('words')print(word)#print(wd.get('words'))

#return word

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值