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中使用插入排序算法的简单分析与代码示例
May 04 Python
Python入门_浅谈逻辑判断与运算符
May 16 Python
Python简单读取json文件功能示例
Nov 30 Python
python绘制条形图方法代码详解
Dec 19 Python
python测试mysql写入性能完整实例
Jan 18 Python
详解Django-auth-ldap 配置方法
Dec 10 Python
django配置连接数据库及原生sql语句的使用方法
Mar 03 Python
Python 堆叠柱状图绘制方法
Jul 29 Python
Tensorflow 卷积的梯度反向传播过程
Feb 10 Python
PyCharm 专业版安装图文教程
Feb 20 Python
python爬虫判断招聘信息是否存在的实例代码
Nov 20 Python
Python基本数据类型之字符串str
Jul 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代码维护,重构变困难的4种原因分析
2016/01/25 PHP
PHP封装的数据库保存session功能类
2016/07/11 PHP
jquery 模式对话框终极版实现代码
2009/09/28 Javascript
很好用的js日历算法详细代码
2013/03/07 Javascript
ExtJS4给Combobox设置列表中的默认值示例
2014/05/02 Javascript
js 操作符汇总
2014/11/08 Javascript
详解Sea.js中Module.exports和exports的区别
2017/02/12 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
JavaScript实现类似淘宝的购物车效果
2017/03/16 Javascript
详解微信小程序-canvas绘制文字实现自动换行
2019/04/26 Javascript
vue store之状态管理模式的详细介绍
2019/06/13 Javascript
vue transition 在子组件中失效的解决
2019/11/12 Javascript
深度解读vue-resize的具体用法
2020/07/08 Javascript
vue 接口请求地址前缀本地开发和线上开发设置方式
2020/08/13 Javascript
[09:37]2018DOTA2国际邀请赛寻真——不懈追梦的Team Serenity
2018/08/13 DOTA
python实现socket端口重定向示例
2014/02/10 Python
在Python中用get()方法获取字典键值的教程
2015/05/21 Python
python实现在windows服务中新建进程的方法
2015/06/30 Python
Python利用scapy实现ARP欺骗的方法
2019/07/23 Python
python爬虫请求头的使用
2020/12/01 Python
俄罗斯优惠券网站:BIGLION
2017/05/21 全球购物
如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
2012/02/15 面试题
艺术设计专业个人求职信范文
2013/12/11 职场文书
机关会计岗位职责
2014/04/08 职场文书
秋天的怀念教学反思
2014/04/28 职场文书
领导班子四风对照检查材料思想汇报
2014/09/26 职场文书
党员批评与自我批评发言
2014/10/02 职场文书
优秀团员自我评价
2015/03/10 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
会议主持人开场白台词
2015/05/28 职场文书
广播体操比赛主持词
2015/06/29 职场文书
2015年初中教务处工作总结
2015/07/21 职场文书
酒店员工管理制度
2015/08/05 职场文书
诚信考试主题班会
2015/08/17 职场文书
企业开发CSS命名BEM代码规范实践
2022/02/12 HTML / CSS
pycharm安装深度学习pytorch的d2l包失败问题解决
2022/03/25 Python