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获取Linux下文件版本信息、公司名和产品名的方法
Oct 05 Python
python统计一个文本中重复行数的方法
Nov 19 Python
python实现rsa加密实例详解
Jul 19 Python
python实现二分查找算法
Sep 21 Python
python使用selenium登录QQ邮箱(附带滑动解锁)
Jan 23 Python
在python中用url_for构造URL的方法
Jul 25 Python
python中open函数的基本用法示例
Sep 07 Python
关于Flask项目无法使用公网IP访问的解决方式
Nov 19 Python
python 中不同包 类 方法 之间的调用详解
Mar 09 Python
python爬虫搭配起Bilibili唧唧的流程分析
Dec 01 Python
Jupyter Notebook添加代码自动补全功能的实现
Jan 07 Python
pandas 实现将NaN转换为None
May 14 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作的文本留言本的例子(四)
2006/10/09 PHP
PHP实现多服务器session共享之NFS共享的方法
2007/03/16 PHP
全新的PDO数据库操作类php版(仅适用Mysql)
2012/07/22 PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
2013/02/18 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
PHP 自动加载类原理与用法实例分析
2020/04/14 PHP
[IE&FireFox兼容]JS对select操作
2007/01/07 Javascript
20个非常有用的PHP类库 加速php开发
2010/01/15 Javascript
JS字符串拼接在ie中都报错的解决方法
2014/03/27 Javascript
javascript动画算法实例分析
2015/07/31 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
2015/08/14 Javascript
jQuery实现简单下拉导航效果
2015/09/07 Javascript
js实现精确到毫秒的倒计时效果
2016/08/05 Javascript
js实现一个简单的MVVM框架示例
2018/01/15 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
2019/04/17 Javascript
vue中的过滤器及其时间格式化问题
2020/04/09 Javascript
微信小程序自定义navigationBar顶部导航栏适配所有机型(附完整案例)
2020/04/26 Javascript
JavaScript实现答题评分功能页面
2020/06/24 Javascript
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
2017/05/08 Python
python绘制铅球的运行轨迹代码分享
2017/11/14 Python
用python写扫雷游戏实例代码分享
2018/05/27 Python
Python实现的爬虫刷回复功能示例
2018/06/07 Python
元组列表字典(莫烦python基础)
2019/04/03 Python
pandas的to_datetime时间转换使用及学习心得
2019/08/11 Python
关于pytorch中全连接神经网络搭建两种模式详解
2020/01/14 Python
Python版中国省市经纬度
2020/02/11 Python
Django分组聚合查询实例分享
2020/04/29 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
2020/10/21 Python
使用CSS3来实现滚动视差效果的教程
2015/08/24 HTML / CSS
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
2020/03/17 HTML / CSS
财务会计专业推荐信
2013/11/30 职场文书
创业计划书如何编写
2014/02/06 职场文书
MySQL 聚合函数排序
2021/07/16 MySQL
如何解决goland,idea全局搜索快捷键失效问题
2022/04/03 Golang
python解析json数据
2022/04/29 Python
JS实现页面炫酷的时钟特效示例
2022/08/14 Javascript