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爬虫之爬虫框架Scrapy安装配置
Nov 06 Python
利用标准库fractions模块让Python支持分数类型的方法详解
Aug 11 Python
Python2.7下安装Scrapy框架步骤教程
Dec 22 Python
python3 http提交json参数并获取返回值的方法
Dec 19 Python
python实现合并两个排序的链表
Mar 03 Python
python 批量添加的button 使用同一点击事件的方法
Jul 17 Python
Golang GBK转UTF-8的例子
Aug 26 Python
python实现的汉诺塔算法示例
Oct 23 Python
Series和DataFrame使用简单入门
Nov 13 Python
python返回数组的索引实例
Nov 28 Python
python SOCKET编程基础入门
Feb 27 Python
python中24小时制转换为12小时制的方法
Jun 18 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
如何删除多级目录
2006/10/09 PHP
apache+codeigniter 通过.htcaccess做动态二级域名解析
2012/07/01 PHP
ThinkPHP3.1新特性之对分组支持的改进与完善概述
2014/06/19 PHP
详解php实现页面静态化原理
2017/06/21 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
js类中获取外部函数名的方法
2007/08/19 Javascript
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
2012/01/13 Javascript
深入解析JavaScript中的变量作用域
2013/12/06 Javascript
js使用正则实现ReplaceAll全部替换的方法
2014/08/22 Javascript
微信分享的标题、缩略图、连接及描述设置方法
2014/10/14 Javascript
JavaScript中的6种运算符总结
2014/10/16 Javascript
javascript制作sql转换为stringBuffer的小工具
2015/04/03 Javascript
把Node.js程序加入服务实现随机启动
2015/06/25 Javascript
深入理解JavaScript定时机制
2016/10/27 Javascript
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解
2019/01/09 Javascript
Vue父子传递实例讲解
2020/02/14 Javascript
vue prop传值类型检验方式
2020/07/30 Javascript
[01:14]DOTA2亚洲邀请赛小组赛赛前花絮
2017/03/27 DOTA
Python中urllib2模块的8个使用细节分享
2015/01/01 Python
深入了解如何基于Python读写Kafka
2019/12/31 Python
Tensorflow 多线程设置方式
2020/02/06 Python
Python 生成短8位唯一id实战教程
2021/01/13 Python
移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法
2018/09/19 HTML / CSS
法国家具及室内配件店:home24
2017/01/21 全球购物
捷克汽车配件和工具销售网站:TorriaCars
2018/02/26 全球购物
日语求职信范文
2013/12/17 职场文书
办公室员工岗位工作职责
2014/03/10 职场文书
买房委托公证书
2014/04/08 职场文书
承诺书格式
2014/06/03 职场文书
信息与工商管理职业规划范文:为梦想而搏击
2014/09/11 职场文书
2015年前台个人工作总结
2015/04/03 职场文书
办公经费申请报告
2015/05/15 职场文书
律师函格式范本
2015/05/27 职场文书
最新的离婚协议书范本!
2019/07/02 职场文书
golang 定时任务方面time.Sleep和time.Tick的优劣对比分析
2021/05/05 Golang