Python 文字识别


Posted in Python onMay 11, 2022

今天给大家分享的主题是用百度的接口实现图片的文字识别。

1.环境和配置要求

整体是用Python实现,所需要使用的第三方库包括aip、PIL、keyboard、pyinstaller,如未安装,可在CMD中使用pip install Baidu-AIP/pillow/keyboard/pyinstaller指令安装。

百度接口

打开网址,如未注册请先注册,然后登录点击管理控制台,点击左侧产品服务人工智能文字识别,点击创建应用,输入应用名称如Baidu_OCR,选择用途如学习办公,最后进行简单应用描述,即可点击立即创建。会出现应用列表,包括AppID、API Key、Secret Key等信息,这些稍后会用到。

Python 文字识别

Python 文字识别

2.具体实现步骤

整个程序的大致思路是,在用截图软件获得截图之后,交给百度接口识别,并返回结果,当然,也可以是本地图片识别,我用的是QQ自带截图软件,快捷键CTRL+ALT+A用来打开截图,在选中所截区域后,按Enter键即可保存到粘贴板中,也可用其他截图软件。

获取截图

keyboard类库是用来监听键盘动作的,所以在有快捷键按下之后,便会有相应动作。并用PIL中的ImageGrab来获取到剪切板中的图片并生成本地图片文件。

#1.截图
keyboard.wait('ctrl+alt+a')
print('开始截图')
 
keyboard.wait('enter')
print('保存截图')
time.sleep(0.1)
 
#2.保存图片
image = ImageGrab.grabclipboard()
image.save('img.png')

调用Baidu aip识别并打印文字

先用注册时生成的应用的AppID、API Key、Secret Key初始化应用,再读取保存到的图片并打印识别的文字。

with open('img.png', 'rb') as fp:
    image = fp.read()
    text_list = client.basicAccurate(image)['words_result']
    for text in text_list:
        print(text['words'])

运行结果如图所示:

Python 文字识别

我们还可增加一个无限循环使得一直能截图。

调用打包程序生成专属识别文字小程序

用pyinstaller库实现小程序的打包,生成.exe文件,这样就能随时识别文字了。在命令行中用pyinstaller xxx.py来打包生成exe文件,最后在生成的dist文件夹即可找到xxx.exe文件如下:

Python 文字识别

最后附上整个源代码:

#引入截图软件,获取文件到本地端,并识别图片文字,最后打包
import keyboard #控制键盘
from PIL import ImageGrab #保存图片
import time
from aip import AipOcr

""" 你的 APPID AK SK """
APP_ID = '17076767'
API_KEY = 'Af3Rj5HALMz5AN8prSgwTH4m'
SECRET_KEY = '******************'

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
i = 0

while True:
    #1.截图
    keyboard.wait('ctrl+alt+a')
    print('开始截图')

    keyboard.wait('enter')
    print('保存截图')
    time.sleep(0.1)

    #2.保存图片
    image = ImageGrab.grabclipboard()
    image.save('img{}.png'.format(i))


    """ 调用通用文字识别(高精度版) """

    with open('img{}.png'.format(i), 'rb') as fp:
        image = fp.read()
        text_list = client.basicAccurate(image)['words_result']
        for text in text_list:
            print(text['words'])

    i+=1

附图图片识别案例

Python 文字识别

到此这篇关于十行Python代码实现文字识别功能的文章就介绍到这了!


Tags in this post...

Python 相关文章推荐
python通过BF算法实现关键词匹配的方法
Mar 13 Python
搞笑的程序猿:看看你是哪种Python程序员
Jun 12 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
Sep 26 Python
Python实现PS滤镜的万花筒效果示例
Jan 23 Python
python数据分析数据标准化及离散化详解
Feb 26 Python
Python实现的FTP通信客户端与服务器端功能示例
Mar 28 Python
Python django框架应用中实现获取访问者ip地址示例
May 17 Python
python elasticsearch从创建索引到写入数据的全过程
Aug 04 Python
python如何保存文本文件
Jun 07 Python
解析Tensorflow之MNIST的使用
Jun 30 Python
python Polars库的使用简介
Apr 21 Python
使用python绘制分组对比柱状图
Apr 21 Python
解决Python保存文件名太长OSError: [Errno 36] File name too long
May 11 #Python
Python 匹配文本并在其上一行追加文本
May 11 #Python
Python 一键获取电脑浏览器的账号密码
May 11 #Python
图神经网络GNN算法
May 11 #Python
python神经网络ResNet50模型
May 06 #Python
python和anaconda的区别
May 06 #Python
python神经网络Xception模型
May 06 #Python
You might like
php curl post 时出现的问题解决
2014/01/30 PHP
php循环table实现一行两列显示的方法
2015/06/04 PHP
PHP生成树的方法
2015/07/28 PHP
PHP的Yii框架的常用日志操作总结
2015/12/08 PHP
详解js异步文件加载器
2016/01/24 PHP
Laravel5框架自定义错误页面配置操作示例
2019/04/17 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
ExtJS 入门
2010/10/29 Javascript
JS验证邮箱格式是否正确的代码
2013/12/05 Javascript
移动端效果之IndexList详解
2017/10/20 Javascript
浅谈Node.js 子进程与应用场景
2018/01/24 Javascript
基于jQuery实现的设置文本区域的光标位置
2018/06/15 jQuery
详解Angular cli配置过程记录
2019/11/07 Javascript
npx create-react-app xxx创建项目报错的解决办法
2020/02/17 Javascript
Javascript实现简易天数计算器
2020/05/18 Javascript
JavaScript中交换值的10种方法总结
2020/08/18 Javascript
[09:31]2016国际邀请赛中国区预选赛Yao赛后采访 答题送礼
2016/06/27 DOTA
布同 Python中文问题解决方法(总结了多位前人经验,初学者必看)
2011/03/13 Python
Python wxPython库消息对话框MessageDialog用法示例
2018/09/03 Python
Python中利用aiohttp制作异步爬虫及简单应用
2018/11/29 Python
梅尔频率倒谱系数(mfcc)及Python实现
2019/06/18 Python
np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴
2019/11/30 Python
Python实现点云投影到平面显示
2020/01/18 Python
Python基于xlutils修改表格内容过程解析
2020/07/28 Python
CSS3,线性渐变(linear-gradient)的使用总结
2017/01/09 HTML / CSS
荷兰优雅女装网上商店:Heine
2016/11/14 全球购物
英国工具中心:UK Tool Centre
2017/07/10 全球购物
const char*, char const*, char*const的区别是什么
2014/07/09 面试题
管理站站长岗位职责
2013/11/27 职场文书
中专毕业生的自我鉴定
2013/12/01 职场文书
防汛工作情况汇报
2014/10/28 职场文书
交通事故协议书范本
2014/11/18 职场文书
运动会闭幕词
2015/01/28 职场文书
公司借款担保书
2015/09/22 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书
Pandas加速代码之避免使用for循环
2021/05/30 Python