Python调用百度云api,实现截图图片文字识别

Python调用百度云api,实现截图图片文字识别调用百度云api,实现截图图片文字识别相信大家在网上查找资料时都会遇到一些类似于pdf格式的文档,无法直接复制,手打太过于浪费时间。那么在这里我分享一个调用百度云api文字识别接口识别此类文字的python小程序。本人刚学习python时间不长,如果内容有错误还望斧正。首先我们需要去百度云官网申请一个接口点击立即使用创建应用填写需要填写的数据后点击立即创建,即可创建成功此时我们…

大家好,又见面了,我是你们的朋友全栈君。

调用百度云api,实现截图图片文字识别

相信大家在网上查找资料时都会遇到一些类似于pdf格式的文档,无法直接复制,手打太过于浪费时间。那么在这里我分享一个调用百度云api文字识别接口识别此类文字的python小程序。本人刚学习python时间不长,如果内容有错误还望斧正。

首先我们需要去
百度云官网申请一个接口


百度智能云文字识别

点击立即使用


点击立即使用

创建应用


创建应用

填写需要填写的数据后点击立即创建,即可创建成功


在这里插入图片描述

此时我们可以看到已建应用有一个,点击管理应用


在这里插入图片描述

这三个数据我们写代码的时候会使用到


在这里插入图片描述

关于这个接口的费用问题,大家不需要担心,百度云给我们提供了
50000次/天免费完全可以满足大家的学习生活使用

做完了准备工作接下来就要开始代码部分了(本人使用
pycharm,python3


首先我们需要安装几个包

pip install keyboard
#用于监控键盘事件
pip install Pillow
#用于截图后获取剪切板中的内容
pip install baidu_aip
#用于调用百度的文字识别接口

安装完成后我们正式开始写代码了
第一步导包

import keyboard
import time
from PIL import ImageGrab
from aip import AipOcr

定义截图方法,在这里我使用的是qq的截图工具
Ctrl + Alt+A

def jietu():
    if keyboard.wait(hotkey="A+ctrl+alt")==None:#等待键盘输入截图命令,如果你喜欢使用其他的截图工具可以在这里更改
        if keyboard.wait(hotkey="enter")==None:	#截图结束后,按回车键继续向下运行程序
            time.sleep(0.1)						#这里必须进行等待,由于程序的运行速度快于截图的速度,如果不等待可能会出现获取不到图片或者识别上一张图片
            im=ImageGrab.grabclipboard()		#获取剪切板中的图片
            im.save('b.jpg')					#保存图片,这里我们使用一个固定的文件名,可以覆盖掉前一张图片,避免大量的图片占用电脑空间

截图完成后我们就要对被截取图片上的文字进行识别

class Baiduaip(object):
    def __init__(self):
        APPID = '********'
        APIKey = '**********'
        SecretKey = '************'
        #以上三个数据就是我们在百度云申请到的,大家将自己申请到的填入其中即可
        self.client = AipOcr(APPID,APIKey,SecretKey)
    def getPicture(self):
        with open('b.jpg','rb') as f:
            return f.read()
          #读取我们截取到的图片,并返回
    def getText(self):
    #这里进行请求并获取识别后的文字
        image=self.getPicture()
        #调用getPicture()方法,获取图片数据
        text= self.client.basicGeneral(image)
        words_list=text["words_result"]
        #获取到的内容是字典格式,进行解析,words_result里面的内容是列表形式
        for i in words_list:
            word=i["words"]
            return word
            #获取到识别后的文字后,返回结果
            

在这里我们定义一个方法来执行我们定义好的方法,目的为了代码简洁明了,便于其他模块调用

def run():
    jietu()
    #先调用截图方法,进行截图
    baiduaip=Baiduaip()
    #将Baiduaip类实例化
    word=baiduaip.getText()
    #调用Baiduaip类的getText的方法进行文字识别
    print(word)
    #在屏幕上打印
    return word

最后我们来执行一下

if __name__ == '__main__':
    while 1:
        run()

至此程序就写完了,我们找个网页截图实验一下
这是我截的图片
在这里插入图片描述
这是识别结果
在这里插入图片描述
这里给大家一个完整的程序,便于大家查看

import keyboard
import time
from PIL import ImageGrab
from aip import AipOcr
import re
class Baiduaip(object):
    def __init__(self):
        APPID = '**********'
        APIKey = '************'
        SecretKey = '***********'
        self.client = AipOcr(APPID,APIKey,SecretKey)
    def getPicture(self):
        with open('b.jpg','rb') as f:
            return f.read()
    def getText(self):
        image=self.getPicture()
        text= self.client.basicGeneral(image)
        words_list=text["words_result"]
        for i in words_list:
            word=i["words"]
            return word
def jietu():
    if keyboard.wait(hotkey="A+ctrl+alt")==None:
        if keyboard.wait(hotkey="enter")==None:
            time.sleep(0.1)
            im=ImageGrab.grabclipboard()
            im.save('b.jpg')
def run():
    jietu()
    baiduaip=Baiduaip()
    word=baiduaip.getText()
    print(word)
    return word
if __name__ == '__main__':
    while 1:
        run()

如果我有什么错误或者大家有什么看不到的地方可以直接私聊我,我会进行改正。。。。。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137704.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月1日 下午3:46
下一篇 2022年6月1日 下午3:46


相关推荐

  • js 字符串截取方法汇总

    js 字符串截取方法汇总一、使用slice()截取1,函数说明slice()方法可通过指定的开始和结束位置,提取字符串的某个部分,并以新的字符串返回被提取的部分。语法如下:string.slice(start,end);start(必需):规定从何处开始选取。如果是负数,那么它规定从字符串尾部开始算起的位置。也就是说,-1指最后一个字符,-2指倒数第二个字符,以此类推。参数说明:end(可选):规定从何处结束选取,即结束处的字符下标。如果没有指定该参数,那么截取的字符串包含从start到结束的所…

    2022年6月11日
    57
  • centos利用yum安装卸载软件常用命令

    centos利用yum安装卸载软件常用命令

    2021年10月8日
    42
  • 使用instsrv和srvany注册windows系统服务

    使用instsrv和srvany注册windows系统服务1、下载配置instsrv和srvany下载地址:https://dl.pconline.com.cn/download/558946.html根据电脑属性复制文件:32位操作系统:将两个文件放入C:\Windows\System32文件夹下即可64位操作系统:除放入System32文件夹下,还需放入C:\Windows\SysWOW64文件夹下2、jar包和bat运行文件在同一目录下3、追加服务win+r打开运行窗口、输入cmd进入DOS窗口执行命令:instsrvr

    2022年6月14日
    48
  • Oracle数据库update用法总结

    Oracle数据库update用法总结1 用子查询更新关联数据 update 表名 set 字段 1 字段 2 select 字段 1 字段 2from 表名 where 限定条件 1 where 限定条件 2

    2026年3月17日
    2
  • Mask_RCNN训练自己的数据,标注工具Labelme的使用说明

    Mask_RCNN训练自己的数据,标注工具Labelme的使用说明#2018/05/04更新由于labelme的数据预处理过程还是太繁琐,现在换成了类似于COCO数据集注释的方式(JSON文件):https://blog.csdn.net/qq_15969343/article/details/80167215#以下为原文该Mask_RCNN版本为基于:Python3,Keras,TensorFlow,我使用的具体版本为:Python3.6.3TensorF………

    2026年4月13日
    4
  • 细说Spring——AOP详解(AOP概览)

    细说Spring——AOP详解(AOP概览)一、对AOP的初印象首先先给出一段比较专业的术语(来自百度):在软件业,AOP为AspectOrientedProgramming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而…

    2022年7月27日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号