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

  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 图片文字识别的更多相关文章

  1. Python人工智能之图片识别,Python3一行代码实现图片文字识别

    1.Python人工智能之图片识别,Python3一行代码实现图片文字识别 2.tesseract-ocr安装包和中文语言包 注意:

  2. 小试Office OneNote 2010的图片文字识别功能(OCR)

    原文:小试Office OneNote 2010的图片文字识别功能(OCR) 自Office 2003以来,OneNote就成为了我电脑中必不可少的软件,它集各种创新功能于一身,可方便的记录下各种类型 ...

  3. 一篇文章搞定百度OCR图片文字识别API

    一篇文章搞定百度OCR图片文字识别API https://www.jianshu.com/p/7905d3b12104

  4. 刚破了潘金莲的身份信息(图片文字识别),win7、win10实测可用(免费下载)

    刚破了潘金莲的身份信息(图片文字识别),win7.win10实测可用 效果如下: 证照,车牌.身份证.名片.营业执照 等图片文字均可识别 电脑版 本人出品 大小1.3MB 下载地址:https://p ...

  5. 【图片识别】java 图片文字识别 ocr (转)

    http://www.cnblogs.com/inkflower/p/6642264.html 最近在开发的时候需要识别图片中的一些文字,网上找了相关资料之后,发现google有一个离线的工具,以下为 ...

  6. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 18—Photo OCR 应用实例:图片文字识别

    Lecture 18—Photo OCR 应用实例:图片文字识别 18.1 问题描述和流程图 Problem Description and Pipeline 图像文字识别需要如下步骤: 1.文字侦测 ...

  7. java 图片文字识别 ocr

    最近在开发的时候需要识别图片中的一些文字,网上找了相关资料之后,发现google有一个离线的工具,以下为java使用的demo 在此之前,使用这个工具需要在本地安装OCR工具: 下面一个是一定要安装的 ...

  8. JAVA的图片文字识别技术

    从2013年的记录看,JAVA中图片文字识别技术大部分采用ORC的tesseract的软件功能,后来渐渐开放了java-api调用接口. 图片文字识别技术,还是采用训练的方法.并未从根本上解决图片与文 ...

  9. [C13] 应用实例:图片文字识别(Application Example: Photo OCR)

    应用实例:图片文字识别(Application Example: Photo OCR) 问题描述和流程图(Problem Description and Pipeline) 图像文字识别应用所作的事是 ...

随机推荐

  1. cropper.js图片裁剪

    最近做电子名片的项目,可是个人照片展示上出现了 用户上传的图片尺寸严重失调,所以要求进行图片裁剪,再此我对图片裁剪进行调研 还不太成熟 以后再改 这个实现的原理是 前台获取到 坐标 图片的尺寸 原图文 ...

  2. axios中文文档

    Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中. Features 从浏览器中创建 XMLHttpRequests 从 node.js 创建 http  ...

  3. 2018牛客网暑假ACM多校训练赛(第五场)H subseq 树状数组

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round5-H.html 题目传送门 - https://www.no ...

  4. 020000——00001_使用 PyCharm

    1.快速上手的中文视频 简单介绍了如何安装.如何创建文件.如何设置皮肤. http://v.youku.com/v_show/id_XODMyMzM1NzQ4.html 2.Pychram 官方的快速 ...

  5. 20165235 祁瑛 2018-4 《Java程序设计》第七周学习总结

    20165235 祁瑛 2018-4 <Java程序设计>第七周学习总结 教材学习内容总结 MySQL数据管理系统 MySQL数据管理系统,简称MySQL,是世界上流行的数据管理系统. M ...

  6. ESP8266进阶篇

    ESP8266进阶篇 20170225(应需要,继续使用此模块!!!) 说一下如何通过内网和外网来控制我的ESP8266的数据模块 1.内网控制:(要求手机直接连接在ESP8266的WIFI上面,使用 ...

  7. TF:TF定义两个变量相乘之placeholder先hold类似变量+feed_dict最后外界传入值—Jason niu

    #TF:TF定义两个变量相乘之placeholder先hold类似变量+feed_dict最后外界传入值 import tensorflow as tf input1 = tf.placeholder ...

  8. 手动实现Promise

    Promise对大家来说并不是很陌生,它是一个异步编程的解决方案,主要解决了前端回调地域问题.用阮老师的话说,它“就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果”. Pro ...

  9. Is there a TRY CATCH command in Bash

    Is there a TRY CATCH command in Bash? No. Bash doesn't have as many luxuries as one can find in many ...

  10. 给有C或C++基础的Python入门 :Python Crash Course 4 操作列表 4.1--4.3

    操作列表,也就是遍历列表.本章我们要学的就是如何遍历列表. 4.1--4.2 遍历列表 遍历列表,用for循环. 不同于C++或者C语言的for循环,Python的for循环更容易让人理解. 看一个例 ...