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 相关文章推荐
5个很好的Python面试题问题答案及分析
Jan 19 Python
python爱心表白 每天都是浪漫七夕!
Aug 18 Python
对python中数组的del,remove,pop区别详解
Nov 07 Python
对Python中创建进程的两种方式以及进程池详解
Jan 14 Python
python浪漫表白源码
Apr 05 Python
python twilio模块实现发送手机短信功能
Aug 02 Python
在Python3 numpy中mean和average的区别详解
Aug 24 Python
python简单利用字典破解zip文件口令
Sep 07 Python
python判断字符串以什么结尾的实例方法
Sep 18 Python
Django url 路由匹配过程详解
Jan 22 Python
django学习之ajax post传参的2种格式实例
May 14 Python
关于Python使用turtle库画任意图的问题
Apr 01 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 HTML代码串 截取实现代码
2009/06/29 PHP
使用php清除bom示例
2014/03/03 PHP
PHP实现伪静态方法汇总
2016/01/13 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
2016/11/30 PHP
php实现socket推送技术的示例
2017/12/20 PHP
jquery一般方法介绍 入门参考
2011/06/21 Javascript
JQuery DataTable删除行后的页面更新利用Ajax解决
2013/05/17 Javascript
Javascript编写2048小游戏
2015/07/07 Javascript
微信小程序图表插件(wx-charts)实例代码
2017/01/17 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
2017/01/18 Javascript
php输出全部gb2312编码内的汉字方法
2017/03/04 Javascript
jQuery EasyUI之验证框validatebox实例详解
2017/04/10 jQuery
详解vue服务端渲染(SSR)初探
2017/06/19 Javascript
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
JS基于for语句编写的九九乘法表示例
2018/01/04 Javascript
vue-froala-wysiwyg 富文本编辑器功能
2019/09/19 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
2020/05/23 Javascript
Javascript节流函数throttle和防抖函数debounce
2020/12/03 Javascript
Python 使用SMTP发送邮件的代码小结
2016/09/21 Python
Python网络爬虫项目:内容提取器的定义
2016/10/25 Python
使用python编写监听端
2018/04/12 Python
Python分割指定页数的pdf文件方法
2018/10/26 Python
Python+Tensorflow+CNN实现车牌识别的示例代码
2019/10/11 Python
python将图片转base64,实现前端显示
2020/01/09 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
详解HTML5.2版本带来的修改
2020/05/06 HTML / CSS
思想政治自我鉴定
2013/10/06 职场文书
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
银行爱岗敬业演讲稿
2014/05/05 职场文书
中国梦读书活动总结
2014/07/10 职场文书
2014党员自我评议表范文
2014/09/20 职场文书
就业协议书盖章的注意事项
2014/09/28 职场文书
2014年组织部工作总结
2014/11/14 职场文书
先进人物事迹材料
2014/12/29 职场文书
业务员岗位职责
2015/02/03 职场文书
Python pandas之求和运算和非空值个数统计
2021/08/07 Python