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 相关文章推荐
详解MySQL数据类型int(M)中M的含义
Nov 20 Python
对pandas的dataframe绘图并保存的实现方法
Aug 05 Python
Selenium 模拟浏览器动态加载页面的实现方法
May 16 Python
使用Django启动命令行及执行脚本的方法
May 29 Python
python pandas中对Series数据进行轴向连接的实例
Jun 08 Python
对python 自定义协议的方法详解
Feb 13 Python
对python借助百度云API对评论进行观点抽取的方法详解
Feb 21 Python
简单了解python反射机制的一些知识
Jul 13 Python
opencv3/C++ 平面对象识别&透视变换方式
Dec 11 Python
详解tensorflow之过拟合问题实战
Nov 01 Python
如何用python实现一个HTTP连接池
Jan 14 Python
pandas中pd.groupby()的用法详解
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
PHP文本数据库的搜索方法
2006/10/09 PHP
oracle资料库函式库
2006/10/09 PHP
C# Assembly类访问程序集信息
2009/06/13 PHP
php中函数前加&符号的作用分解
2014/07/08 PHP
PHP PDOStatement::execute讲解
2019/01/31 PHP
由Javascript实现的页面日历
2011/11/04 Javascript
JSONP 跨域共享信息
2012/08/16 Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
2013/01/23 Javascript
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
js动态调用css属性的小规律及实例说明
2013/12/28 Javascript
jQuery实现根据类型自动显示和隐藏表单
2015/03/18 Javascript
JS中完美兼容各大浏览器的scrolltop方法
2015/04/17 Javascript
Javascript常用小技巧汇总
2015/06/24 Javascript
jquery合并表格中相同文本的相邻单元格
2015/07/17 Javascript
用Move.js配合创建CSS3动画的入门指引
2015/07/22 Javascript
PageSwitch插件实现100种不同图片切换效果
2015/07/28 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
JavaScript深度复制(deep clone)的实现方法
2016/02/19 Javascript
jQuery常用的一些技巧汇总
2016/03/26 Javascript
jQuery组件easyui对话框实现代码
2016/08/25 Javascript
JavaScript之cookie技术详解
2016/11/18 Javascript
javascript判断firebug是否开启的方法
2016/11/23 Javascript
再谈Angular4 脏值检测(性能优化)
2018/04/23 Javascript
浅析JS中什么是自定义react数据验证组件
2018/10/19 Javascript
vue-cli构建vue项目的步骤详解
2019/01/27 Javascript
Websocket 向指定用户发消息的方法
2020/01/09 Javascript
[01:07:21]NAVI vs VG Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
浅谈Python2获取中文文件名的编码问题
2018/01/09 Python
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
2018/05/08 Python
Python带动态参数功能的sqlite工具类
2018/05/26 Python
世界上最好的威士忌和烈性酒购买网站:The Whisky Exchange
2016/11/20 全球购物
全球领先的美容用品专卖店:Beauty Plus Salon
2018/09/04 全球购物
J2EE面试题集锦(附答案)
2013/08/16 面试题
检举信的格式及范文
2014/04/04 职场文书
党员转正意见怎么写
2015/06/03 职场文书
vue 自定义组件添加原生事件
2022/04/21 Vue.js