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进阶教程之文本文件的读取和写入
Aug 29 Python
跟老齐学Python之总结参数的传递
Oct 10 Python
详解Python中heapq模块的用法
Jun 28 Python
python字符串,数值计算
Oct 05 Python
Python numpy实现数组合并实例(vstack,hstack)
Jan 09 Python
浅谈python下tiff图像的读取和保存方法
Dec 04 Python
python如何实现数据的线性拟合
Jul 19 Python
Python中的xlrd模块使用原理解析
May 21 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
Jul 09 Python
详细分析Python collections工具库
Jul 16 Python
Python实现Excel自动分组合并单元格
Feb 22 Python
pd.DataFrame中的几种索引变换的实现
Jun 16 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
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
php传值方式和ajax的验证功能
2017/03/27 PHP
javascript引用对象的方法
2007/01/11 Javascript
一段利用WSH修改和查看IP配置的代码
2008/05/11 Javascript
javascript整除实现代码
2010/11/23 Javascript
nodejs win7下安装方法
2012/05/24 NodeJs
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
js中substring和substr的详细介绍与用法
2013/08/29 Javascript
JQuery中dataGrid设置行的高度示例代码
2014/01/03 Javascript
简单的jquery左侧导航栏和页面选中效果
2014/08/21 Javascript
jQuery中replaceWith()方法用法实例
2014/12/25 Javascript
javascript将异步校验表单改写为同步表单
2015/01/27 Javascript
浅谈NodeJS中require路径问题
2015/05/07 NodeJs
jQuery前端开发35个小技巧
2016/05/24 Javascript
JavaScript实现广告弹窗效果
2016/08/09 Javascript
使用vue.js在页面内组件监听scroll事件的方法
2018/09/11 Javascript
微信小程序 调用远程接口 给全局数组赋值代码实例
2019/08/13 Javascript
如何在JS文件中获取Vue组件
2020/09/16 Javascript
Selenium执行JavaScript脚本的方法示例
2020/12/31 Javascript
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
python处理csv数据动态显示曲线实例代码
2018/01/23 Python
Python 多维List创建的问题小结
2019/01/18 Python
详解pandas数据合并与重塑(pd.concat篇)
2019/07/09 Python
django中SMTP发送邮件配置详解
2019/07/19 Python
django使用admin站点上传图片的实例
2019/07/28 Python
Python坐标线性插值应用实现
2019/11/13 Python
Python接口自动化判断元素原理解析
2020/02/24 Python
Python基于爬虫实现全网搜索并下载音乐
2021/02/14 Python
HTML5+CSS3实现拖放(Drag and Drop)示例
2014/07/07 HTML / CSS
用Python写一个for循环的例子
2016/07/19 面试题
前台文员岗位职责及工作流程
2013/11/19 职场文书
大二自我鉴定
2014/01/31 职场文书
公司请假条格式
2014/04/11 职场文书
MySQL sql_mode的使用详解
2021/05/08 MySQL
python随机打印成绩排名表
2021/06/23 Python
Redis 彻底禁用RDB持久化操作
2021/07/09 Redis