使用腾讯云 Cloud studio 实现调度百度AI实现文字识别

news2024/11/17 22:37:28

文章目录

  • 前言
    • 导入模块
    • 设置百度AI的APP_ID、API_KEY和SECRET_KEY
    • 定义路径和文件列表
    • 打开文本文件准备写入数据
    • 逐个处理图片文件
    • 关闭文本文件
    • 重复处理其他图片文件
    • 完整代码
      • 解释说明
    • 运行效果

请添加图片描述

前言

今天我们也来高大上一下,玩一把人工智能。那就是免费调用百度AI实现图片上面的文字识别。相对于Python的第三方库,百度人工智能要更强大,毕竟人工智能不是那么容易搞的。要调用,其实很简单,关键的代码只需要三行。但需要先注册百度AI,获得ID和密钥。注册也很简单,百度AI社区有详细说明,高铁直达链接:https://ai.baidu.com/forum/topic/show/867951 。只需走到“1.6 获取密钥”即可。然后记录下自己的APP_ID、API_KEYSECRET_KEY,就可以开始了。界面如下。每个ID每天可免费识别200次,请珍惜使用哈。
请添加图片描述
代码说明如下:

导入模块

from aip import AipOcr #导入AipOcr模块,用于做文字识别
import glob

该部分代码导入了AipOcr模块和glob模块。

设置百度AI的APP_ID、API_KEY和SECRET_KEY

APP_ID = '你申请的'
API_KEY = '你申请的'
SECRET_KEY = '你申请的'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

这段代码设置了百度AI的APP_ID、API_KEY和SECRET_KEY,并使用这些参数创建了一个AipOcr对象。

定义路径和文件列表

path = "红楼梦\\"
files = glob.glob(path+"*.png")

这部分代码定义了一个路径path和一个文件列表files,通过使用glob.glob函数来获取指定路径下所有的.png文件。

打开文本文件准备写入数据

txt_file = open('红楼梦.txt', 'a')

该部分代码打开一个名为红楼梦.txt的文本文件,以追加(‘a’)的方式打开。

逐个处理图片文件

for file in files:
    pic = open(file,'rb')#以二进制(rb)打开
    img = pic.read() #读取
    message = client.basicGeneral(img) #调用百度AI识别图片中的文字
    for words in message['words_result']:
        word = words['words'] #提取文字
        print(word)
        
        txt_file.write(word) #将文字写入文本文件

这部分代码使用for循环逐个处理files中的图片文件。首先打开图片文件,以二进制读取模式(‘rb’)打开,并读取图片内容。然后调用client.basicGeneral方法,将图片内容传递给百度AI进行文字识别,返回的结果保存在message中。接着使用for循环遍历message['words_result']中的每个元素,提取出其中的文字信息并保存在word变量中。然后将文字写入文本文件txt_file中。

关闭文本文件

txt_file.close()

关闭文本文件。

重复处理其他图片文件

path = "论文\\"
files = glob.glob(path+"*.png")

txt_file = open('论文1.txt', 'a')

for file in files:
    pic = open(file,'rb')
    img = pic.read()
    message = client.basicGeneral(img)
    for words in message['words_result']:
        word = words['words']
        print(word)

        txt_file.write(word)

txt_file.close()

这部分代码与前面类似,只是处理的图片路径和文本文件名称不同。同样使用glob.glob函数获取指定路径下的所有.png文件,并逐个对其进行文字识别,并将识别结果保存到文本文件中。最后关闭文本文件。

完整代码

下面是整理后的代码,并对其进行讲解说明:

from aip import AipOcr
import glob

# 导入AipOcr模块,用于做文字识别
# 导入glob模块,用于获取文件列表

APP_ID = '你申请的'
API_KEY = '你申请的'
SECRET_KEY = '你申请的'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

# 设置百度AI的APP_ID、API_KEY和SECRET_KEY,并创建AipOcr对象

path = "红楼梦\\"
files = glob.glob(path + "*.png")

txt_file = open('红楼梦.txt', 'a')

# 定义路径和文件列表,打开一个红楼梦.txt的文本文件以追加的方式

for file in files:
    pic = open(file, 'rb')
    img = pic.read()
    message = client.basicGeneral(img)
    
    # 逐个处理图片文件,打开图片文件,读取图片内容
    # 调用百度AI的basicGeneral方法,将图片内容传递给百度AI进行文字识别
    
    for words in message['words_result']:
        word = words['words']
        print(word)
        txt_file.write(word)
        
        # 遍历识别结果中的每个文字,提取出文字并打印
        # 将文字写入文本文件
        
txt_file.close()

# 关闭文本文件

path = "论文\\"
files = glob.glob(path + "*.png")

txt_file = open('论文1.txt', 'a')

# 重新定义路径和文件列表,打开一个论文1.txt的文本文件以追加的方式

for file in files:
    pic = open(file, 'rb')
    img = pic.read()
    message = client.basicGeneral(img)
    
    # 逐个处理图片文件,打开图片文件,读取图片内容
    # 调用百度AI的basicGeneral方法,将图片内容传递给百度AI进行文字识别
    
    for words in message['words_result']:
        word = words['words']
        print(word)
        txt_file.write(word)
        
        # 遍历识别结果中的每个文字,提取出文字并打印
        # 将文字写入文本文件
        
txt_file.close()

# 关闭文本文件

解释说明

  • 导入AipOcr模块和glob模块,前者用于调用百度AI的文字识别功能,后者用于获取指定路径下的图片文件列表。

  • 根据实际申请的百度AI账号,设置了APP_IDAPI_KEYSECRET_KEY,并使用这些参数创建了一个AipOcr对象。

  • 定义了两个路径变量path,分别对应红楼梦和论文的文件夹路径。使用glob.glob函数获取指定路径下的所有.png文件,并保存到files列表中。

  • 打开一个相应的文本文件以追加的方式,用于保存文字识别的结果。

  • 通过循环遍历处理每个图片文件。首先打开图片文件,并读取其内容。然后调用client.basicGeneral方法,将图片内容传递给百度AI进行文字识别。返回的结果保存在message中。

  • 使用for循环遍历message['words_result']中的每个元素,提取出其中的文字信息并保存在word变量中。然后将文字打印出来,并写入文本文件中。

  • 关闭文本文件。

这段代码的核心功能是通过百度AI的文字识别功能对指定路径下的图片文件进行文字识别,并将识别结果保存到相应的文本文件中。可以根据实际情况,修改路径、文件名和文件格式等参数,适用于其他图片文件的文字识别任务。

运行效果

请添加图片描述
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/816608.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

站外引流效果差?一文带你搞懂解海外主流社交媒体算法!

在流量成本越来越高的当下,无论是平台卖家还是独立站卖家都在努力拓展流量渠道。站外引流是推动业务增长的关键策略,很多卖家会把重点放在内容营销上,但其实除了做好内容之前,了解社交媒体的算法才能让营销效果最大化。 01.Faceb…

操作系统专栏2进程管理from 小林coding

进程管理 基本概念进程控制进程上下文切换 线程进程和线程的比较进程通信管道消息队列共享内存信号量信号socket 基本概念 进程:一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元.并行和并发:状态: 其中挂起是指没有给程序分配实际…

一百三十八、ClickHouse——使用clickhouse-backup备份ClickHouse库表

一、目标 使用clickhouse-backup在本地全库备份ClickHouse的数据库 二、前提 已经安装好clickhouse-backup 注意:由于之前同事已经按照好clickhouse-backup,所以我就没有安装 如有需要请参考其他人的博客安装一下,下面是我认为比较好的一…

如何看待前端已死这个问题(大学生篇)

小编刚大学毕业,还记得是大三的时候选择的前端开发方向,那个时候行情其实并没有这么差,最近互联网上讨论这一个很火的话题,叫前端已死。那么我就说说我的看法吧,虽然可能比起行业的大佬会比较短浅,但我想就…

盘点12个Vue 3的高颜值UI组件库

今天给大家盘点12个Vue 3的高颜值UI组件库,凡是用过Vue 框架开发项目的老铁们最少有用过其中一种或者二种以上的UI组件库,用广东话讲:个个都靓。 今天给大家盘点12个Vue 3的高颜值UI组件库,凡是用过Vue 框架开发项目的老铁们最少有…

【我们一起60天准备考研算法面试(大全)-第三十天 30/60】【矩阵翻转】【矩阵相乘】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

一文读懂原生应用与混合应用

大家对于原生应用和混合应用已经非常熟悉了,这里就不再进行详细的介绍,用通俗易懂的话解释下他们的一些特点。 1、原生应用 在 Android、iOS 等移动平台上利用提供的开发语言、开发类库、开发工具进行 App 软件开发。比如 Android 是用 Java、Eclipse、…

日撸代码300行:第59天(数值型数据的 NB 算法)

代码来自闵老师”日撸 Java 三百行(51-60天)“,链接:https://blog.csdn.net/minfanphd/article/details/116975957 相较于符号型数据,数值型是将实例的概率密度带入进行概率计算。数值型数据仅需要对决策属性那里进行…

Vue 基础语法(二)

一、背景: 我们对于基础语法,说白了就是实现元素赋值,循环,判断,以及事件响应即可! 二、v-bind 我们已经成功创建了第一个 Vue 应用!看起来这跟渲染一个字符串模板非常类似,但是 V…

性能测试/负载测试/压力测试之间的区别

做测试一年多来,虽然平时的工作都能很好的完成,但最近突然发现自己在关于测试的整体知识体系上面的了解很是欠缺,所以,在工作之余也做了一些测试方面的知识的补充。不足之处,还请大家多多交流,互相学习。 …

全网最细,性能测试-接口压测 Locust固件实战,从0到1进阶...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 python如何进行性…

基于YOLOv5的S弯识别

基于YOLOv5的S弯识别 目录 基于YOLOv5的S弯识别技术背景算法介绍具体实现1、下载仓库2、配置环境3、数据处理4、转成engine文件5、使用代码实现识别 技术总结 技术背景 S弯识别是一个在自动驾驶和机器人领域中很常见的任务,它需要识别道路上的弯道,特别…

springboot+mybatis-flex初体验

mybatis作为一款应用非常广泛的持久层框架,随之又出现了mybatis的增强框架。mybatis的增强框架就是在mybatis 的基础上又添加了许多的功能,目的就是为简化开发,提供效率而生。mybatis-plus就是一款很流行的增加框架,在 mybatis-pl…

小程序学习(四):WXML模板语法

WXML模板语法-数据绑定 1.数据绑定的基本原则 ①在data中定义数据 ②在WXML中使用数据 2.动态绑定属性 WXML模板语法-事件绑定 3.什么是事件 4.小程序中常用的事件 5.事件对象的属性列表 6.target和currentTarget的区别 7.bindtap的语法格式 8.在事件处理函数中为data中的数据…

华为、阿里巴巴、字节跳动 100+ Python 面试问题总结(六)

系列文章目录 个人简介:机电专业在读研究生,CSDN内容合伙人,博主个人首页 Python面试专栏:《Python面试》此专栏面向准备面试的2024届毕业生。欢迎阅读,一起进步!🌟🌟🌟 …

校园跑腿小程序功能分享

提起校园跑腿小程序大家都不陌生,尤其是对上大学的伙伴们来说,更是熟悉得不能再熟悉了,和我们的生活息息相关,密不可分。 对于现在的年轻人来说,网购是非常简单和方便的一种购物方式,随之快递也会越来越多。在我们国家…

rancher2使用helm部署harbor,搭建私有镜像/helm仓库

接上一篇《rancher2安装nfs-subdir-external-provisioner为PVC/PV动态提供存储空间(动态分配卷)》 本篇开始讲如何在rancher2中部署harbor,来搭建一个私有的镜像/helm仓库。 一、安装harbor服务 1. 在目标集群中添加命名空间 2. 将提供harb…

Elbie勒索病毒的最新威胁:如何恢复您的数据?

导言: 在数字时代的浩瀚网络中,隐藏着一支不为人知的黑暗势力,他们的代表之一就是臭名昭著的Elbie勒索病毒。这个神秘的数字幽灵似乎无所不能,几乎每个人都可能成为它的牺牲品。本文91数据恢复将揭示Elbie勒索病毒的背后故事&…

数据结构-链表结构-单向链表

链表结构 说到链表结构就不得不提起数据结构,什么是数据结构?就是用来组织和存储数据的某种结构。那么到底是某种结构呢? 数据结构分为: 线性结构 数组,链表,栈,队列 树形结构 二叉树&#x…

零基础玩转C语言—结构体【初阶】

大家好,我是深鱼~ 目录 【前言】: 一、结构体的声明 1.1结构的基本知识 1.2结构的声明 1.3结构体成员的类型 1.4结构体变量的定义和初始化 二、结构体成员的访问 【前言】:本章来介绍结构体的部分知识,并不会深入讲解&…