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命令行参数解析OptionParser类用法实例
Oct 09 Python
python使用mailbox打印电子邮件的方法
Apr 30 Python
Python 数据结构之队列的实现
Jan 22 Python
基于python 字符编码的理解
Sep 02 Python
pandas把dataframe转成Series,改变列中值的类型方法
Apr 10 Python
Python切片索引用法示例
May 15 Python
python tornado修改log输出方式
Nov 18 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
Apr 08 Python
Django 解决阿里云部署同步数据库报错的问题
May 14 Python
Python新手学习标准库模块命名
May 29 Python
python安装后的目录在哪里
Jun 21 Python
Python中实现一行拆多行和多行并一行的示例代码
Sep 06 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 前一天或后一天的日期
2008/06/28 PHP
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
2008/10/13 PHP
php 修改zen-cart下单和付款流程以防止漏单
2010/03/08 PHP
WordPress中用于检索模版的相关PHP函数使用解析
2015/12/15 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
2015/12/28 PHP
Laravel搭建后台登录系统步骤详解
2016/07/26 PHP
PHP实现统计在线人数功能示例
2016/10/15 PHP
Yii框架函数简单用法分析
2019/09/09 PHP
jQuery 学习第六课 实现一个Ajax的TreeView
2010/05/17 Javascript
如何使用json在前后台进行数据传输实例介绍
2013/04/11 Javascript
jquery 简单应用示例总结
2013/08/09 Javascript
JS格式化数字金额用逗号隔开保留两位小数
2013/10/18 Javascript
浅析javascript的间隔调用和延时调用
2014/11/12 Javascript
javaScript中Math()函数注意事项
2015/06/18 Javascript
javascript中类的定义方式详解(四种方式)
2015/12/22 Javascript
基于jQuery实现以手风琴方式展开和折叠导航菜单
2016/01/28 Javascript
老生常谈遮罩层 滚动条的问题
2016/04/29 Javascript
JS对象深度克隆实例分析
2017/03/16 Javascript
PHP7新特性简述
2017/06/11 Javascript
老生常谈ES6中的类
2017/07/31 Javascript
AngularJS路由删除#符号解决的办法
2017/09/28 Javascript
如何把vuejs打包出来的文件整合到springboot里
2018/07/26 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
详解在Angular4中使用ng2-baidu-map的方法
2019/06/19 Javascript
Python3中类、模块、错误与异常、文件的简易教程
2017/11/20 Python
python机器学习案例教程——K最近邻算法的实现
2017/12/28 Python
使用python爬虫实现网络股票信息爬取的demo
2018/01/05 Python
PyQt5 QTable插入图片并动态更新的实例
2019/06/18 Python
使用Keras 实现查看model weights .h5 文件的内容
2020/06/09 Python
Python xlwt模块使用代码实例
2020/06/10 Python
领导班子四风问题对照检查材料
2014/09/27 职场文书
2015年“七七卢沟桥事变”纪念活动总结
2015/03/24 职场文书
《月光曲》教学反思
2016/02/16 职场文书
2019年暑期安全广播稿!
2019/07/03 职场文书
创业计划书之淘宝网店
2019/10/08 职场文书
python如何正确使用yield
2021/05/21 Python