python利用百度云接口实现文字OCR功能

1. 前言

在日常生活中有时我们需要从图片中获取文字,虽然QQ上面已经有了相关的功能,但是出于学习的目的,我打算利用百度智能云的文字OCR接口来实现OCR功能。
具体关于百度智能云的注册和创建应用可以参见这篇文章只要十分钟 快速掌握文字识别

2. python实现文字OCR

这里其实所需要的代码可以直接从官方文档上获取,如果不愿意看官方文档,可以直接看下面的代码

# coding=utf-8import sys
import json
import base64
import tkinter.filedialog# 保证兼容python2以及python3
IS_PY3 = sys.version_info.major == 3
if IS_PY3:from urllib.request import urlopenfrom urllib.request import Requestfrom urllib.error import URLErrorfrom urllib.parse import urlencode
else:pass# 防止https证书校验不正确
import sslssl._create_default_https_context = ssl._create_unverified_contextAPI_KEY = 'your API_KEY'                    ; 填入你的API_KEYSECRET_KEY = 'your SECRET_KEY'              ; 填入你的SECRET_KEYOCR_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic""""  TOKEN start """
TOKEN_URL = 'https://aip.baidubce.com/oauth/2.0/token'"""获取token
"""def fetch_token():params = {'grant_type': 'client_credentials','client_id': API_KEY,'client_secret': SECRET_KEY}post_data = urlencode(params)if IS_PY3:post_data = post_data.encode('utf-8')req = Request(TOKEN_URL, post_data)try:f = urlopen(req, timeout=5)result_str = f.read()except URLError as err:print(err)if IS_PY3:result_str = result_str.decode()result = json.loads(result_str)if 'access_token' in result.keys() and 'scope' in result.keys():if not 'brain_all_scope' in result['scope'].split(' '):print('please ensure has check the  ability')exit()return result['access_token']else:print('please overwrite the correct API_KEY and SECRET_KEY')exit()"""读取文件
"""def read_file(image_path):f = Nonetry:f = open(image_path, 'rb')return f.read()except:print('read image file fail')return Nonefinally:if f:f.close()"""调用远程服务
"""def request(url, data):req = Request(url, data.encode('utf-8'))try:f = urlopen(req)result_str = f.read()if IS_PY3:result_str = result_str.decode()return result_strexcept  URLError as err:print(err)if __name__ == '__main__':# 获取access tokentoken = fetch_token()# 拼接通用文字识别高精度urlimage_url = OCR_URL + "?access_token=" + tokentext = ""# 读取书籍页面图片try:file_content = read_file("./text.jpg")# 调用文字识别服务result = request(image_url, urlencode({'image': base64.b64encode(file_content)}))# 解析返回结果result_json = json.loads(result)for words_result in result_json["words_result"]:text = text + words_result["words"]# 打印文字print(text)except:print("The file path is wrong! ")

将下面这张图片放在存放程序的文件夹中

运行程序会获得以下内容:

中午,胡小懒跟公司的同事去附近的餐馆吃饭,附近所有的餐馆都人满为患,往往需要等位,午餐时间至少需要45分钟吃完午饭回来,趴在桌子上睡个午觉,午睡醒来后,胡小懒往往觉得这一天才真正开始。通常,胡小懒要用至少半个小时的时间才能从午睡状态中清醒过来,再处理一些琐事,下午就这么过去了。如果部门开会,时间就在领导的演讲和大家低头玩手机中度过了。上良下班后吃点东西,坐地铁回到家,已经八点左右了。他虽然白天在公司没做什么事情,但下班回家后仍然觉得十分累,除了窝在床上看美剧之外,别的什么也不想做。胡小懒临睡前看着乱糟糟的房间,眉头一皱,但心里却乐观地期待着周末的到来,想着周末一定要大干一场,让整个房间焕然一新。可周末到了,就真的能够像他自己期待的那样吗?,个胡小懒的周末通常是这样过的:宅在家里随便找部美剧或者网络小说打发时间,觉得日子过得很惬意。朋友邀请过他很多次,想周末一起吃个饭,但胡小懒都以“下次吧”敷衍了过去。因为他觉得,好好一个周末,还需要像平时一样穿得周周正正地出门,还得坐车去到约好的地点,真是太烦人了。不个一就这样,与胡小懒联系的朋友越来越少,而他自己根本就没有意识到。后宫不共像胡小懒这样看似每天都有事做,实际上却是一直在混日子的上班族并不少见。而他们中的很多人并不觉得自己是在混日子,只是怀才不遇。一5窗人靠中爱因斯坦在解释相对论时曾说过一个著名的比喻:“一个男人与美女对坐1小时,会觉得似乎只过了1分钟;但如果让他坐在热火炉上1

3. 结语

其实像这种文字OCR应用一般是需要先截图在进行识别的,但是这些工作我不想在python中完成,因为我不擅长python的图形化编程,所以我会选择使用C#来实现这些功能,如果对这方面感兴趣,可以关注我之后关于文字OCR方面的文章。

python利用百度云接口实现文字OCR功能相关推荐

  1. python代码示例百度云-python利用百度云接口实现车牌识别的示例

    一个小需求---实现车牌识别. 目前有两个想法 1. 调云在线的接口或者使用SDK做开发(配置环境和编译第三方库很麻烦,当然使用python可以避免这些问题) 2. 自己实现车牌识别算法(复杂) 一开 ...

  2. python利用百度云接口实现车牌识别

    一个小需求---实现车牌识别. 目前有两个想法 调云在线的接口或者使用SDK做开发(配置环境和编译第三方库很麻烦,当然使用python可以避免这些问题) 自己实现车牌识别算法(复杂) ! 一开始准备使 ...

  3. python不调包实现sobel_python利用百度云接口实现车牌识别的示例

    一个小需求---实现车牌识别. 目前有两个想法 1. 调云在线的接口或者使用SDK做开发(配置环境和编译第三方库很麻烦,当然使用python可以避免这些问题) 2. 自己实现车牌识别算法(复杂) 一开 ...

  4. 九十三、Python使用百度云接口API实现截图,文字识别和语音合成

    @Author:Runsen @Date:2020/7/13 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏 ...

  5. python用百度云接口实现身份证识别

    python可以通过python+Opencv来实现很多文字识别之类的工作,因为OpenCV库的功能可以说是相当强大,很多功能都可以完成.但是实现起来需要自己造轮子,所以很费时间和精力,我们可以直接学 ...

  6. python用百度云接口实现植物识别和动物识别

    一些先验知识可以查看上面的博客 python用百度云接口实现黑白图片上色 新建AipImageClassify AipImageClassify是图像识别的Python SDK客户端,为使用图像识别的 ...

  7. 如何用python调用百度云接口实例

    python可以通过python+Opencv来实现很多图片变换之类的工作,因为OpenCV库的功能可以说是相当强大,很多功能都可以完成.但是实现起来需要自己造轮子,所以很费时间和精力,我们可以直接学 ...

  8. 车牌识别python实现ubuntu_python利用百度云接口实现车牌识别

    一个小需求---实现车牌识别. 目前有两个想法 调云在线的接口或者使用SDK做开发(配置环境和编译第三方库很麻烦,当然使用python可以避免这些问题) 自己实现车牌识别算法(复杂) 一开始准备使用百 ...

  9. python百度aip移动目标监控系统_python利用百度云接口实现车牌识别

    一个小需求---实现车牌识别. 目前有两个想法 调云在线的接口或者使用SDK做开发(配置环境和编译第三方库很麻烦,当然使用python可以避免这些问题) 自己实现车牌识别算法(复杂) ! 一开始准备使 ...

最新文章

  1. 5GS 协议栈 — PFCP 协议 — BAR 缓存行为规则
  2. jmeter的性能监控框架搭建记录(Influxdb+Grafana+Jmeter)
  3. 记一次Hbase数据迁移和遇到的问题
  4. 卷积核旋转180度理解
  5. html怎么样做出两列布局页面,HTML+CSS实现两栏和三栏布局
  6. 字符集 ISO-8859-1(3)
  7. NUC1154 Vertical Histogram【打印图案】
  8. 不可磨灭的记忆 CPU发展史经典回顾
  9. 使用Beaglebone Black的I2C(一)
  10. 内网端口映射工具之80端口映射和全端口映射及辅助发布网站应用
  11. 飞信2009_我的移动互联网十年经历 (一):飞信时代
  12. 紧急求助SPSS大神。spss在xml神经网络预测值为空是怎么回事?
  13. 背包问题——贪婪算法
  14. 图片热点map area
  15. 微信小程序与servlet交互
  16. 转载:电脑cmd命令怎么测试网速详细步骤
  17. 语音短时过零率计算——Python实现
  18. 自动化测试 appium 会报错 Could not proxy command to remote server. Original error: Error: socket hang up
  19. 深入解析:svm支持向量机python代码
  20. modify()函数的用法

热门文章

  1. 责任链模式之开发新游戏的审批过程
  2. 第十二周 beta阶段测试报告
  3. 帮我做一个Unity 3D场景,需要跟自行车模拟器和PICO VR连接
  4. Python-批量修改图片全部颜色,批量修改图片的指定颜色,马甲包一键换主题UI
  5. 2004年度暴欠扁短信集锦
  6. 大学学习编程的一点小建议
  7. warning: implicit declaration of function
  8. 36.求解简单的四则运算表达式,输入一个形式如“操作数  运算符  操作数”的四则运算表达式,输出运算结果
  9. 3298. 排队买夜宵
  10. 华为平板m6没有鸿蒙,华为平板M6值得买么?性价比高么?配置够用么?