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 pass 语句使用示例
Mar 11 Python
Python中类型检查的详细介绍
Feb 13 Python
python字符串string的内置方法实例详解
May 14 Python
Python Grid使用和布局详解
Jun 30 Python
python3实现的zip格式压缩文件夹操作示例
Aug 17 Python
python 解决tqdm模块不能单行显示的问题
Feb 19 Python
使用 Python 读取电子表格中的数据实例详解
Apr 17 Python
Python爬取数据并实现可视化代码解析
Aug 12 Python
Python filter()及reduce()函数使用方法解析
Sep 05 Python
Scrapy项目实战之爬取某社区用户详情
Sep 17 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
Sep 20 Python
Python3.9.1中使用match方法详解
Feb 08 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-redis中的sort排序函数总结
2015/07/08 PHP
简介PHP的Yii框架中缓存的一些高级用法
2016/03/29 PHP
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/06 Javascript
使用jquery动态加载javascript以减少服务器压力
2012/10/29 Javascript
javaScript面向对象继承方法经典实现
2013/08/20 Javascript
jquery获取复选框被选中的值
2014/03/22 Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
2015/09/15 Javascript
详解js中构造流程图的核心技术JsPlumb
2015/12/08 Javascript
在js里怎么实现Xcode里的callFuncN方法(详解)
2016/11/05 Javascript
jQuery简单实现MD5加密的方法
2017/03/03 Javascript
详解vue父子模版嵌套案例
2017/03/04 Javascript
webpack4 入门最简单的例子介绍
2018/09/05 Javascript
JS几个常用的函数和对象定义与用法示例
2020/01/15 Javascript
搭建vscode+vue环境的详细教程
2020/08/31 Javascript
使用python检测手机QQ在线状态的脚本代码
2013/02/10 Python
Python写的服务监控程序实例
2015/01/31 Python
Python使用面向对象方式创建线程实现12306售票系统
2015/12/24 Python
浅谈Python中用datetime包进行对时间的一些操作
2016/06/23 Python
Python中使用platform模块获取系统信息的用法教程
2016/07/08 Python
Python实现删除列表中满足一定条件的元素示例
2017/06/12 Python
给你选择Python语言实现机器学习算法的三大理由
2017/11/15 Python
python实现反转部分单向链表
2018/09/27 Python
Python开启线程,在函数中开线程的实例
2019/02/22 Python
django富文本编辑器的实现示例
2019/04/10 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
Python底层封装实现方法详解
2020/01/22 Python
css3 transform属性详解
2014/09/30 HTML / CSS
详解使用HTML5 Canvas创建动态粒子网格动画
2016/12/14 HTML / CSS
美国百年历史早餐食品供应商:Wolferman’s
2017/01/18 全球购物
Unineed中文官网:高端护肤美妆与时尚配饰,英国直邮
2020/07/23 全球购物
优秀学生评语大全
2014/04/25 职场文书
工会换届选举方案
2014/05/21 职场文书
单位作风建设剖析材料
2014/10/11 职场文书
详解vue身份认证管理和租户管理
2021/05/25 Vue.js
Win11跳过联网界面创建本地管理账户的3种方法
2022/04/20 数码科技
讲解MySQL增删改操作
2022/05/06 MySQL