好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

十行Python代码实现文字识别功能

今天给大家分享的主题是用百度的接口实现图片的文字识别。

1.环境和配置要求

整体是用Python实现,所需要使用的第三方库包括aip、PIL、keyboard、pyinstaller,如未安装,可在CMD中使用 pip install Baidu-AIP/pillow/keyboard/pyinstaller 指令安装。

百度接口

打开 网址 ,如未注册请先注册,然后登录点击管理控制台,点击左侧产品 服务 → 人工智能 → 文字识别 ,点击创建应用,输入应用名称如 Baidu_OCR ,选择用途如 学习办公 ,最后进行简单应用描述,即可点击 立即创建 。会出现应用列表,包括 AppID、API Key、Secret Key 等信息,这些稍后会用到。

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'])

运行结果如图所示:

我们还可增加一个无限循环使得一直能截图。

调用打包程序生成专属识别文字小程序

用pyinstaller库实现小程序的打包,生成.exe文件,这样就能随时识别文字了。在命令行中用 pyinstaller xxx.py 来打包生成exe文件,最后在生成的dist文件夹即可找到xxx.exe文件如下:

最后附上整个源代码:

#引入截图软件,获取文件到本地端,并识别图片文字,最后打包
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文字识别内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

查看更多关于十行Python代码实现文字识别功能的详细内容...

  阅读:46次