python3 图片文字识别
最近用到了图片文字识别这个功能,从网上搜查了一下,决定利用百度的文字识别接口。通过测试发现文字识别率还可以。下面就测试过程简要说明一下
1、注册用户
链接:https://login.bce.baidu.com/?account=
少量使用,免费
2、创建一个应用
3、调用方式
python SDK文档:https://cloud.baidu.com/doc/OCR/OCR-Python-SDK.html#.E9.80.9A.E7.94.A8.E6.96.87.E5.AD.97.E8.AF.86.E5.88.AB
首先 安装 pip install baidu-aip
快速入门:https://cloud.baidu.com/doc/OCR/OCR-Python-SDK.html#.E5.BF.AB.E9.80.9F.E5.85.A5.E9.97.A8
接口说明:https://cloud.baidu.com/doc/OCR/OCR-Python-SDK.html#.E6.8E.A5.E5.8F.A3.E8.AF.B4.E6.98.8E
具体实现代码:
from aip import AipOcr
class baiduApi:
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) """ 读取图片 """
def get_file_content(self,imageFile):
with open(imageFile, 'rb') as fp:
return fp.read() def getWordFromImage(self,imageFile):
image = self.get_file_content(imageFile)
result = self.client.basicGeneral(image)
print(result) if __name__=="__main__":
APP_ID=''
API_KEY='eT4rkU2i2X2quti4Z5kIl8dT'
SECRET_KEY='UCo2WIQoMq12TR98Nm2N1PgfhWT47'
obj = baiduApi(APP_ID,API_KEY,SECRET_KEY)
imageFile='E:\\test5.png'
obj.getWordFromImage(imageFile)
另外一种调用方式
参考:https://cloud.baidu.com/doc/OCR/OCR-API.html#.E8.B0.83.E7.94.A8.E6.96.B9.E5.BC.8F.E4.BA.8C
【如果您对于使用API调用的方式很陌生,您可以参见:【只要10分钟 快速掌握文字识别】 教程
可以利用调用方式一
首先获取access_token: 必须参数,参考“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
import requests
import json
import base64
import os
class baiduApi:
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)
return access_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) def getdata(self,imageFile,access_token):
imageBase64 = None
if os.path.exists(imageFile):
with open(imageFile, 'rb') as f: # 以二进制读取图片
data = f.read()
imageBase64= base64.b64encode(data).decode()
if imageBase64:
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 in words_result:
word = wd.get('words')
print(word)
# print(wd.get('words'))
# return word
python3 图片文字识别的更多相关文章
- Python人工智能之图片识别,Python3一行代码实现图片文字识别
1.Python人工智能之图片识别,Python3一行代码实现图片文字识别 2.tesseract-ocr安装包和中文语言包 注意:
- 小试Office OneNote 2010的图片文字识别功能(OCR)
原文:小试Office OneNote 2010的图片文字识别功能(OCR) 自Office 2003以来,OneNote就成为了我电脑中必不可少的软件,它集各种创新功能于一身,可方便的记录下各种类型 ...
- 一篇文章搞定百度OCR图片文字识别API
一篇文章搞定百度OCR图片文字识别API https://www.jianshu.com/p/7905d3b12104
- 刚破了潘金莲的身份信息(图片文字识别),win7、win10实测可用(免费下载)
刚破了潘金莲的身份信息(图片文字识别),win7.win10实测可用 效果如下: 证照,车牌.身份证.名片.营业执照 等图片文字均可识别 电脑版 本人出品 大小1.3MB 下载地址:https://p ...
- 【图片识别】java 图片文字识别 ocr (转)
http://www.cnblogs.com/inkflower/p/6642264.html 最近在开发的时候需要识别图片中的一些文字,网上找了相关资料之后,发现google有一个离线的工具,以下为 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 18—Photo OCR 应用实例:图片文字识别
Lecture 18—Photo OCR 应用实例:图片文字识别 18.1 问题描述和流程图 Problem Description and Pipeline 图像文字识别需要如下步骤: 1.文字侦测 ...
- java 图片文字识别 ocr
最近在开发的时候需要识别图片中的一些文字,网上找了相关资料之后,发现google有一个离线的工具,以下为java使用的demo 在此之前,使用这个工具需要在本地安装OCR工具: 下面一个是一定要安装的 ...
- JAVA的图片文字识别技术
从2013年的记录看,JAVA中图片文字识别技术大部分采用ORC的tesseract的软件功能,后来渐渐开放了java-api调用接口. 图片文字识别技术,还是采用训练的方法.并未从根本上解决图片与文 ...
- [C13] 应用实例:图片文字识别(Application Example: Photo OCR)
应用实例:图片文字识别(Application Example: Photo OCR) 问题描述和流程图(Problem Description and Pipeline) 图像文字识别应用所作的事是 ...
随机推荐
- awk介绍
awk 是一个强大的文本处理工具,它将文本逐行读入,并进行切片,默认以空白格为分割符,对单个切片进行分析,处理. 用法: awk '{pattern + action}' {filenames} 尽管 ...
- python--json、jsonpath
1.遇到一个问题:android返回的基本都是标准的json格式,当我们想要对层层嵌套的json中找到自己想要的字段并进行校验时 难道需要一层一层的解析?? 2.使用jsonpath list_3={ ...
- 麒麟Kylin
开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(MOLAP)能力以支持超大规模数据,能在亚秒内查询巨大的Hive表: Kylin的主要特点包括支持SQL接口.支持超大 ...
- 实现判断条件中有in的判断
如果是简单的写sql,在where中写死就可以了,但是如果是不确定的参数呢,这个时候就需要一点处理方式了. 1.后台的写法 String[] operateResult=new String[]{&q ...
- LeetCode 237. 删除链表中的节点
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode ...
- Python编程基础[函数和面向对象](三)
Python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也 ...
- gitalk报错问题
今天为了优化个人博客,将博客同时部署到Github和Coding,之后虽然博客访问速度相比以前有很大的提升,但是不知道gitalk评论会莫名出现问题 问题 点击使用GitHub登陆会跳转到个人博客主页 ...
- 589. N叉树的前序遍历
[题目] 给定一个 N 叉树,返回其节点值的前序遍历. 例如,给定一个 3叉树 : 返回其前序遍历: [1,3,5,6,2,4]. [解析] """ # Definiti ...
- JDK 1.6 HashMap 源码分析
前言 前段时间研究了一下JDK 1.6 的 HashMap 源码,把部份重要的方法分析一下,当然HashMap中还有一些值得研究得就交给读者了,如有不正确之处还望留言指正. 准备 需要熟悉数组 ...
- 给有C或C++基础的Python入门 :Python Crash Course 4 操作列表 4.4 -- 4.5
上接前一篇文章. 4.4 使用列表的一部分 一,切片 切边,顾名思义,就是处理列表的部分元素. 我们可以联系一下C++的一段语句:for(int i = 0; i < n-2; ++i) cou ...