使用百度aip获取屏幕指定区域中的文字

直接上代码

运行后按F7是第一个坐标,F8是第二个坐标。可以获取F7和F8之前的信息

import pyautogui
from pynput.keyboard import Listener
from PIL import ImageGrab
from aip import AipOcr


# 百度识别文字
class FanYi(object):

    # 用于存放坐标
    coordinate = []
    # 用于存放数据
    data = []

    def __init__(self, file, APP_ID, API_KEY, SECRET_KEY, num=0):
        self.num = num
        self.file = file
        self.client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
        if num != 0:
            print("获取列数为"+str(num)+"的表格,鼠标移动到第一个坐标按F7开始。")
        else:
            pass

    # 百度文字识别
    def Ocr_baidu(self):
        with open(self.file, 'rb') as f:
            image = f.read()
            text = self.client.basicAccurate(image)
        words_result=text['words_result']
        if self.num == 0:
            for i in range(len(words_result)):
                print(words_result[i]['words'])
        else:
            for i in range(len(words_result)):
                data_in = words_result[i]['words']
                self.data.append(data_in)
            j = 1
            str_data = ''
            for i in self.data:
                if j < self.num:
                    str_data = str_data+i+"\t"
                    j += 1
                else:
                    j = 1
                    str_data = str_data+i+"\n"
            self.data.clear()
            print(str_data)
        print("#####################鼠标移动到第一个坐标位置然后按F7########################")


    # 执行截图
    def make_screenshot(self, x1, y1, x2, y2):
        bbox = (x1, y1, x2, y2)
        im = ImageGrab.grab(bbox)
        im.save(self.file)

    def on_press(self, key):
        pass

    # 获取截图位置
    def on_release(self, key):
        print(str(key))
        if str(key) == "Key.f7":
            x1,y1 = pyautogui.position()
            print("第一个坐标是:"+str(x1), str(y1)+",鼠标挪动到第二个坐标位置按F8开始获取信息")
            self.coordinate.append(x1)
            self.coordinate.append(y1)
        elif str(key) == "Key.f8":
            if len(self.coordinate) == 2:
                x2,y2 = pyautogui.position()
                print("第二个坐标是:"+str(x2), str(y2))
                self.coordinate.append(x2)
                self.coordinate.append(y2)
                print(self.coordinate)
                if self.coordinate[0] < self.coordinate[2] and self.coordinate[1] < self.coordinate[3]:
                    self.make_screenshot(self.coordinate[0],self.coordinate[1],self.coordinate[2],self.coordinate[3])
                    print("图片获取成功")
                    self.Ocr_baidu()
                    self.coordinate.clear()

                elif self.coordinate[0] > self.coordinate[2] and self.coordinate[1] < self.coordinate[3]:
                    self.make_screenshot(self.coordinate[2],self.coordinate[1],self.coordinate[0],self.coordinate[3])
                    print("图片获取成功")
                    self.Ocr_baidu()
                    self.coordinate.clear()

                elif self.coordinate[0] > self.coordinate[2] and self.coordinate[1] > self.coordinate[3]:
                    self.make_screenshot(self.coordinate[2],self.coordinate[3],self.coordinate[0],self.coordinate[1])
                    print("图片获取成功")
                    self.Ocr_baidu()
                    self.coordinate.clear()

                elif self.coordinate[0] < self.coordinate[2] and self.coordinate[1] > self.coordinate[3]:
                    self.make_screenshot(self.coordinate[0],self.coordinate[3],self.coordinate[2],self.coordinate[1])
                    print("图片获取成功")
                    self.Ocr_baidu()
                    self.coordinate.clear()

                else:
                    print("请按f7重新获取第一个坐标")
                    self.coordinate.clear()
            else:
                print("请按f7重新获取第一个坐标")
                self.coordinate.clear()
        else:
            print("鼠标移动到第一个坐标位置然后按F7")

    # 监控键盘f7和f8按钮
    def start_listen(self):
        with Listener(on_press=None, on_release=self.on_release) as listener:
            listener.join()




# num=int(表格列数)默认等于0
set_num = input("如果是表格请输入表格的列数,如果不是回车跳过")
if set_num == '':
    set_num = str(0)
FanYi = FanYi(file='find_cor_img.jpg',
              APP_ID='baiduaip中获取',
              API_KEY='9zA7FyHZCpkdkicY6NBG3aZ17',
              SECRET_KEY='WD9n2SDPhqIe5W9WRY0nN8MLCvQU8ROU3',
              num=int(set_num)
              )
FanYi.start_listen()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python是一种广泛应用于各种软件开发领域的编程语言,而PyCharm则是一款为Python开发者提供的强大集成开发环境(IDE)。PyCharm由JetBrains开发,具有许多功能和工具,能够提高开发效率并简化编码过程。 百度AI平台(BAIDU AIP)是百度公司提供的人工智能开放平台,它提供了一系列的API接口,可以方便地对语音、图像等进行处理和分析。百度AIP包含了多个子产品,如人脸识别、图像识别、语音识别、自然语言处理等。 PyCharm和百度AIP是两个相互独立的工具,分别用于Python的开发和人工智能的应用。在Python开发,我们可以利用PyCharm来编辑、调试和运行Python代码,它支持丰富的功能,如智能代码补全、代码导航、代码重构等,可以大大提高开发效率。而百度AIP则是人工智能应用的重要组成部分,它提供了丰富的API接口,可以实现图像识别、文字识别、语音合成等功能,帮助开发者快速构建人工智能应用。 在实际应用,我们可以使用PyCharm来编写Python代码,并使用百度AIP相关的API接口在代码调用百度AI平台的功能。比如,我们可以利用PyCharm编写一个图像识别的应用,通过百度AIP的图像识别API接口,实现对图像进行特定物体的识别和分类。在PyCharm,我们可以方便地编辑和调试相关的代码,并利用百度AIP的API文档进行接口的调用和参数的设置。通过这样的方式,我们可以充分发挥PyCharm和百度AIP的优势,快速构建并调试出符合我们需求的人工智能应用。 总而言之,PyCharm是一款强大的Python开发工具,百度AIP是一个提供人工智能API接口的开放平台,二者可以结合使用,帮助开发者更高效地进行Python开发和人工智能应用的构建。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值