Python小应用 百度接口实现图片文字识别,并打包成安装包软件

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

1.环境和配置要求

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

百度接口

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

2345_image_file_copy_1.jpg

2345_image_file_copy_2.jpg

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

运行结果如图所示:

2345_image_file_copy_3.jpg

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

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

pyinstaller库实现小程序的打包,生成.exe文件,这样就能随时识别文字了。

在命令行中用pyinstaller xxx.py来打包生成exe文件,最后在生成的dist文件夹即可找到xxx.exe文件如下:

2345_image_file_copy_4.jpg

最后附上整个源代码:

#引入截图软件,获取文件到本地端,并识别图片文字,最后打包
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
相关文章
|
2天前
|
Python
百度搜索:蓝易云【yaml在python中实战】
运行以上代码,会将data字典的内容写入名为"data.yaml"的YAML文件,并从该文件中读取数据并打印出来。在实际应用中,你可以根据需要使用PyYAML库来处理复杂的YAML数据,如配置文件、数据序列化等。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
80 1
|
2天前
|
数据采集 数据处理 开发者
Python爬虫技术在数据收集与分析中的应用
随着互联网信息的爆炸式增长,数据收集与分析变得愈发重要。本文将介绍Python爬虫技术在实际项目中的应用,探讨其在数据收集、清洗和分析过程中的作用,以及如何利用Python相关库提高爬虫效率。
|
14小时前
|
数据格式 Python
Python中的正则表达式:基础与应用
Python中的正则表达式:基础与应用
|
14小时前
|
监控 安全 Java
Python中的多线程编程:原理、应用与实践
Python中的多线程编程:原理、应用与实践
|
17小时前
|
设计模式 Java Python
python内置方法和属性应用:反射和单例
python除了丰富的第三方库外,本身也提供了一些内在的方法和底层的一些属性,大家比较常用的如dict、list、set、min、max、range、sorted等。笔者最近在做项目框架时涉及到一些不是很常用的方法和属性,在本文中和大家做下分享【2月更文挑战第2天】
6 0
|
20小时前
|
测试技术 Python
Python中的装饰器应用及实例解析
装饰器是Python中一种强大的函数式编程工具,能够优雅地扩展和修改函数的功能,提高代码的复用性和可维护性。本文将深入探讨Python中装饰器的原理、应用场景以及实际示例,帮助读者更好地理解和运用装饰器技术。
|
20小时前
|
开发框架 数据可视化 数据挖掘
Python数据可视化神器Matplotlib及其应用
数据可视化在数据分析和展示中扮演着至关重要的角色,而Matplotlib作为Python中最流行的数据可视化库之一,提供了丰富的功能和灵活性,本文将介绍Matplotlib的基本用法和常见应用场景。
|
1天前
|
Kubernetes 应用服务中间件 nginx
百度搜索:蓝易云【使用Kubernetes部署Nginx应用教程】
至此,你已经成功部署了一个简单的Nginx应用到Kubernetes集群中。当然,还有很多更复杂的配置和功能可以实现,例如使用Ingress、设置资源限制等,根据实际需求可以进一步深入学习Kubernetes的更多特性和功能。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
78 2
|
1天前
|
程序员 测试技术 数据处理
Python中的装饰器应用与实现Python并发编程之协程与多线程对比分析
在Python编程中,装饰器是一种强大的工具,能够简洁而优雅地扩展函数或类的功能。本文将深入探讨Python中装饰器的原理、应用场景以及实现方法,帮助读者更好地理解和运用这一重要的编程概念。 本文将从Python并发编程的角度出发,对比分析协程与多线程两种并发处理方式的优缺点及适用场景,帮助读者更好地选择适合自己项目的并发方案。
|
1天前
|
缓存 Python
Python中的装饰器应用技巧
装饰器(Decorator)作为Python语言的重要特性之一,在实际开发中扮演着举足轻重的角色。本文将深入探讨装饰器的定义、原理以及在不同场景下的灵活运用,帮助读者更好地理解和应用Python中的装饰器。

相关产品

  • 云迁移中心