200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > python:ocr图文识别(百度智能云API文字识别)

python:ocr图文识别(百度智能云API文字识别)

时间:2020-09-30 12:46:14

相关推荐

python:ocr图文识别(百度智能云API文字识别)

文章目录

前言一、创建账号和应用二、具体步骤1.第一种方式:2.第二种方式总结

前言

说道OCR图文识别,其实python也有在自己的库(以下是我了解,应该还有很多):

第一个 tesserocr:个人感觉不好用,精确度不高,实例代码如下:

import tesserocrfrom PIL import Image#coding=utf-8image = Image.open('img.jpg')result = tesserocr.image_to_text(image)print(result)

第二个 cn识别库,虽然比前者好一点,但还是差强人意,附上实例代码,记得先安装库:

from cnstd import CnStdfrom cnocr import CnOcrstd = CnStd()cn_ocr = CnOcr()box_info_list = std.detect('01.jpg')#图片文件for box_info in box_info_list:cropped_img = box_info['cropped_img'] # 检测出的文本框ocr_res = cn_ocr.ocr_for_single_line(cropped_img)print('ocr result: %s' % ''.join(ocr_res))


在这些情况都不行的情况下,我想着能不能接入第三方接口,那样效果会不会更好一点,所以我最后选择了百度智能云的OCR接口,免费次数给的多,不用白不用。

一、创建账号和应用

首先你得创建账号,这个就不说了,

创建应用登陆首页 点击管理控制台=》产品服务=》文字识别=》创建应用,接着填写一下就完成了

最后到这个界面:

获得重要的参数AppID,API Key,Secret Key后面做准备。

记得安装一下模块:

pip install baidu-aip

二、具体步骤

1.第一种方式:

账号密码登陆,也可以说是高精确度版本的,看一下他给的python相关代码:

说实话,有的我也看不懂,我就按照我的理解写一下:

import osfrom aip import AipOcr""" 你的 APPID AK SK """APP_ID = ''#填入你的AppIDAPI_KEY = ''#填入你的API KeySECRET_KEY = ''#填入你的Secret Keyclient = AipOcr(APP_ID, API_KEY, SECRET_KEY)""" 读取图片 """def get_file_content(filePath):with open(filePath, 'rb') as fp:return fp.read()with open('03.jpg', 'rb') as f:image = f.read()dict = client.basicAccurate(image)#结果是字典,包含一些日志print(dict)

2.第二种方式

第二种方式精确度不高,但是免费次数很多,通常我都用这个

也给了代码示例,按照我的理解,代码如下:

import requestsimport base64import ioimport sysimport osimport jsonsys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf8')'''通用文字识别'''host = '/oauth/2.0/token?grant_type=client_credentials&client_id=API Key&client_secret=Secret Key'#鉴权使用的Access_token必须通过API Key和Secret Key获取,对应你的API Key,Secret Key填入host种response1 = requests.get(host).textjsonData = json.loads(response1)access_token = jsonData["access_token"]#获取access_token中内容#获取图片网址信息url = "https://………….jpg"#图片网址request_url = "/rest/2.0/ocr/v1/general_basic"imgData = requests.get(url).contentimg_data = base64.b64encode(imgData)params = {"image": img_data}request_url = request_url + "?access_token=" + access_tokenheaders = {'content-type': 'application/x-www-form-urlencoded'}response2 = requests.post(request_url, data=params, headers=headers)if response2:dict = response2.json()words = dict["words_result"]#取出识别内容word_list = []for word in words:word_list.append(word["words"])list1 = [str(i) for i in word_list]for i in list1:print(i)


总结

ocr识别还是很有作用的,如有不足的,一起交流学习!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。