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

作者:Corley 时间:2024-01-01 14:55:09 

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

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代码实现文字识别功能

来源:https://mp.weixin.qq.com/s/qNO3FiW177J4DTp2voo6BA

标签:Python,文字,识别
0
投稿

猜你喜欢

  • 14个出色的jQuery导航菜单实例教程

    2009-12-31 17:23:00
  • 剖析SQL Server 事务日志的收缩和截断

    2009-01-15 13:04:00
  • 利用python实现命令行有道词典的方法示例

    2021-03-24 06:32:16
  • 在ASP.NET 2.0中操作数据之一:创建一个数据访问层

    2023-06-24 16:58:54
  • Python利用Scrapy框架爬取豆瓣电影示例

    2022-04-30 15:16:17
  • Golang中结构体映射mapstructure库深入详解

    2024-04-26 17:34:40
  • php curl选项列表(超详细)

    2023-07-18 15:19:32
  • Python 八个数据清洗实例代码详解

    2022-12-08 23:50:36
  • Python数据可视化之简单折线图的绘制

    2021-05-25 11:59:30
  • python中MethodType方法介绍与使用示例

    2022-09-08 03:28:50
  • 从JavaScript的函数重名看其初始化方式

    2023-07-16 22:00:12
  • mssql无数据库日志文件恢复数据库的方法第1/2页

    2024-01-28 16:33:52
  • Python银行系统实战源码

    2022-05-14 14:16:56
  • python 写入csv乱码问题解决方法

    2021-11-13 11:32:22
  • Python中更优雅的日志记录方案详解

    2023-09-02 13:43:03
  • 《JavaScript DOM 编程艺术》读书笔记之JavaScript 简史

    2024-04-10 16:13:23
  • asp如何做一个随机密码产生器?

    2010-07-12 18:57:00
  • 那些被我遗忘掉的XHTML标签们

    2008-06-07 14:27:00
  • Go for-range 的 value值地址每次都一样的原因解析

    2023-09-23 12:59:20
  • Python定义二叉树及4种遍历方法实例详解

    2021-05-28 06:22:55
  • asp之家 网络编程 m.aspxhome.com