1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【python】python实现屏幕指定区域文字提取(百度API)

【python】python实现屏幕指定区域文字提取(百度API)

时间:2021-10-12 18:06:45

相关推荐

【python】python实现屏幕指定区域文字提取(百度API)

因为OCR文字识别功能不是特别好,推荐利用百度API的来实现屏幕指定区域的文字识别。

一、如何注册百度API?

1.打开百度api网页,使用百度账号登陆

2.点击控制台,选择文字识别

3.点击创建应用,填好相关信息后点击立即创建。

4.填好相关信息后会显示申请成功后的Appid Key等,这个就是后来py代码中使用百度文字识别api的权限。(相当于账号密码)

二、指定区域文字识别脚本使用方法

1.先从搞一下百度文字识别的api,然后将APP_ID,API_KEY,SECRECT_KEY写在ini文件中

2.打开要提取文字的图片,将鼠标放在要选文字的左上角,按下键盘Q,将鼠标移动到要提取文字的右下角,按下键盘E

3.按下键盘S保存识别文字(不按S,无法进行保存)

4.所识别的文字,记录在工程路径下log.txt中

三、指定区域文字识别脚本的实现

这里面为了可配置,后期方便打包为exe文件,我将ID和KEY写在一个在一个account.ini文件中,方便后期更改。

ini文件内容如下:

[account]APP_ID = 25945929API_KEY = BRizLcWQlKQMDEoS4kZGBlcCSECRECT_KEY = jyIoG7H4vzjSk92wT18O0FdeuFMI0TBk

你需要导入百度aip第三方库。注意:是aip,不是api !!!

py代码如下:

#!/usr/bin/python# -*- coding: utf-8 -*-import os.pathimport timeimport configparserfrom aip import AipOcrimport pyautoguiimport keyboarddef write(test):"""写入日志中:param test: :return: """with open("log.txt", 'a+', encoding="utf-8") as fp:test = test + "\n"fp.write(test)fp.close()def translation():"""识别保存后的图片中的文字:return: 识别后的文字"""i = open("666.png", 'rb')img = i.read()message = client.basicGeneral(img)print(message)# message = client.basicAccurate(img)if message['words_result']:return message['words_result'][0]['words']else:print("截图区域无文字信息")def deleteimg():"""删除项目目录下的截图:return:"""name = "666.png"if os.path.exists(name):os.remove(name)def get_mouse_position():container = []while True:if keyboard.is_pressed("Q"):container = []container.insert(0, list(pyautogui.position()))time.sleep(0.5)print("选定图像左上角", container)if keyboard.is_pressed("W") and len(container) > 0:container.insert(1, list(pyautogui.position()))container = container[:2]time.sleep(0.5)print("选定图像右下角", container)if container[0][0] >= container[1][0] or container[0][1] >= container[1][1]:container = []print("选定区域不合法,请重新选定")if len(container) == 2 and keyboard.is_pressed("S"):print(container)time.sleep(0.8)pyautogui.screenshot("666.png", region=(container[0][0], container[0][1],container[1][0]-container[0][0],container[1][1]-container[0][1]))b = translation()write(str(b))container = []if __name__ == "__main__":con = configparser.ConfigParser()con.read("account.ini")APP_ID = con.get("account", "APP_ID")API_KEY = con.get("account", "API_KEY")SECRECT_KEY = con.get("account", "SECRECT_KEY")client = AipOcr(APP_ID, API_KEY, SECRECT_KEY)get_mouse_position()

运行代码后,按照使用方法就可以进行文字识别啦!!!识别的非常准确呢!!!

如果对你有帮助,就点个关注吧! 共同学习,一起进步!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。