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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 永恒之蓝封445端口方法_永恒之蓝病毒解决方法

    永恒之蓝封445端口方法_永恒之蓝病毒解决方法补丁下载地址http://www.catalog.update.microsoft.com/search.aspx?q=kb4012212下载第二个,33.2M的那个,然后安装,并重启。然后,封445端口新建两个文件:block_445.reg内容为:WindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINE…

    2022年10月17日
    3
  • k8sV1.18.0版本一键部署脚本(全部代码在下方)

    k8sV1.18.0版本一键部署脚本(全部代码在下方)

    2021年5月30日
    120
  • idea主题样式插件[通俗易懂]

    idea主题样式插件[通俗易懂]1、File->Settings…->Plugins中搜索MaterialThemeUI,然后点击安装,安装完成后重启Idea2、重启后会自动进入设置样式界面3、进入后可自己重新配置File->Settings…->Editor->ColorScheme进行设置还有背景图设置在plugin中添加backgroundIma…

    2022年6月27日
    72
  • ResNet34学习笔记+用pytorch手写实现

    ResNet34学习笔记+用pytorch手写实现看懂ResNet,需要理解两个点:shortcut的处理,以及网络结构理解1——IdentityMappingbyShortcuts(快捷恒等映射)我们每隔几个堆叠层采用残差学习。构建块如图2所示。在本文中我们考虑构建块正式定义为x和y是考虑的层的输入和输出向量。函数F(x,Wi)表示要学习的残差映射。图2中的例子有两层,F=W2σ(W1x)中σ表示ReLU[29],为了…

    2022年10月5日
    0
  • 九九乘法表

    九九乘法表九九乘法表

    2022年4月24日
    43
  • php小区物业管理系统_代挂网源码最新版

    php小区物业管理系统_代挂网源码最新版萌驰物管家目前采用的是:域名授权(不限制IP,域名只授权一个,但您可以解析多个域名到同一站点,授权的域名必须保证可以访问到站点)萌驰物管家老客户首次更换授权域名是免费的,之后收费标准:800/次关于支付微信支付官方通道可以走服务商自己的,非法人结算对私结算可以走悟能科技对接好的(汇付天下,随行付,乐刷,等)。独立部署只有后台跟公众号及小程序APP需要单独购买2万一个端。悟能科技官网:www.wun…

    2022年10月18日
    3

发表回复

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

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