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实现的下载8000首儿歌的代码分享
Nov 21 Python
浅析Python中yield关键词的作用与用法
Nov 29 Python
由浅入深讲解python中的yield与generator
Apr 05 Python
Python模拟用户登录验证
Sep 11 Python
Python使用pickle模块存储数据报错解决示例代码
Jan 26 Python
python如何定义带参数的装饰器
Mar 20 Python
详解python读取和输出到txt
Mar 29 Python
OpenCV 轮廓检测的实现方法
Jul 03 Python
pycharm显示远程图片的实现
Nov 04 Python
Python持续监听文件变化代码实例
Jul 22 Python
基于Python实现简单学生管理系统
Jul 24 Python
一文搞懂Python Sklearn库使用
Aug 23 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
用cookies来跟踪识别用户
2006/10/09 PHP
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
2009/10/11 PHP
php设计模式 Bridge (桥接模式)
2011/06/26 PHP
php cli模式学习(PHP命令行模式)
2013/06/03 PHP
提升PHP性能的21种方法介绍
2013/06/25 PHP
php命名空间学习详解
2014/02/27 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
2014/04/08 PHP
PHP实现的贪婪算法实例
2017/10/17 PHP
jQuery 扩展对input的一些操作方法
2009/10/30 Javascript
jquery制作 随机弹跳的小球特效
2015/02/01 Javascript
node.js 中国天气预报 简单实现
2016/06/06 Javascript
jQuery实现点击表格单元格就可以编辑内容的方法【测试可用】
2016/08/01 Javascript
AngularJS入门教程之链接与图片模板详解
2016/08/19 Javascript
Vue自定义图片懒加载指令v-lazyload详解
2020/12/31 Javascript
详解Vue快速零配置的打包工具——parcel
2018/01/16 Javascript
详解小程序之简单登录注册表单验证
2019/05/13 Javascript
[07:43]《辉夜杯》公开赛晋级外卡赛战队—TRG训练生活探秘
2015/12/11 DOTA
Python编码时应该注意的几个情况
2013/03/04 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
2018/05/24 Python
Python版名片管理系统
2018/11/30 Python
Python2与Python3的区别实例分析
2019/04/11 Python
Python 字符串、列表、元组的截取与切片操作示例
2019/09/17 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
2020/02/21 Python
django项目中新增app的2种实现方法
2020/04/01 Python
CSS3中使用RGBa来调节透明度的教程
2016/05/09 HTML / CSS
css3实现六边形边框的实例代码
2019/05/24 HTML / CSS
Shopee印度尼西亚:东南亚与台湾市场最大电商平台
2018/06/17 全球购物
中职应届生会计求职信
2013/10/23 职场文书
汽车队司机先进事迹材料
2014/02/01 职场文书
绿色环保标语
2014/06/12 职场文书
夫妻双方自愿离婚协议书怎么写
2014/12/01 职场文书
2015欢度元旦标语口号
2014/12/09 职场文书
浅谈如何提高PHP代码质量之端到端集成测试
2021/05/28 PHP
Python中的datetime包与time包包和模块详情
2022/02/28 Python
Redis 操作多个数据库的配置的方法实现
2022/03/23 Redis
Ruby GDBM操作简介及数据存储原理
2022/04/19 Ruby