OCR文字识别在UI自动化上的运用

2024-08-21 11:18

本文主要是介绍OCR文字识别在UI自动化上的运用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

用了Airtest的图像识别后发现在一些文字的识别上有些不准确,猜测可能是特征值比较低吧,容易匹配错。

在论坛上也看到过有人用OCR的方式,记不得是哪个帖子了,用的是腾讯云的接口吧。

按这个思路尝试了一下,腾讯云的接口有次数限制,我找了讯飞的接口,完全免费,也能用

原理很简单,给这个接口上传一张图片,后台处理生成识别出来的文字以及位置坐标。

有几个云平台提供了OCR的接口,腾讯云超过一定次数就收费,我找到了科大讯飞的接口是完全免费的。

给这个接口上传一张图片,后台处理生成识别出来的文字以及位置坐标。

所以,只要把设备的屏幕截图保存,读进来,转成base64编码,传给讯飞云接口

等着结果返回json串,解析里面包含你要找的文字,拿到位置坐标,算出中心点

点击

搞定

贴代码,讯飞云上的demo代码照搬有问题,改了一下

import urllib
def OCR_getPos(target):filePath = snapshot()f = open(filePath, 'rb')file_content = f.read()base64_image = base64.b64encode(file_content)body = urllib.parse.urlencode({'image': base64_image}).encode(encoding='utf-8')url = 'http://webapi.xfyun.cn/v1/service/v1/ocr/general'api_key = '1e90ca2d09d7213bf6770f34e6d2e70b'#用你自己的api_key替换param = {"language": "cn|en", "location": "true"}x_appid = "c23538b5" #用你自己的appid替换,我这个是乱敲的哈x_param = base64.b64encode(json.dumps(param).replace(' ', '').encode(encoding="utf-8"))x_param_b64_str = x_param.decode('utf-8')x_time = str(int(int(round(time.time() * 1000)) / 1000))string = api_key+x_time+x_param_b64_strstring = string.encode('utf-8')# string = api_key + str(x_time) + x_param# m = hashlib.new('md5')# m.update(string.encode(encoding='UTF-8'))# x_checksum = m.hexdigest()# hash = hashlib.new('md5')# hash.update(.encode(encoding='utf-8'))# x_checksum = hash.hexdigest()x_checksum = hashlib.md5(string).hexdigest()x_header = {'X-Appid': x_appid,'X-CurTime': x_time,'X-Param': x_param_b64_str,'X-CheckSum': x_checksum}req = urllib.request.Request(url, body, x_header)result = urllib.request.urlopen(req)result = result.read().decode()jsonObject = json.loads(result)location=Nonetry:data = jsonObject.get('data').get('block')for block in data:if block.get('type') == 'text':data = blockexcept:print('no words')returnlines = data.get('line')for line in lines:words = line.get('word')for word in words:content = word.get('content')if content is not None and target in content:location = word.get('location')print(location)if location :x1 = int(location.get('top_left').get('x'))y1 = int(location.get('top_left').get('y'))x2 = int(location.get('right_bottom').get('x'))y2 = int(location.get('right_bottom').get('y'))width = x2 -x1height = y2 - y1center_x = x1 + width/2center_y = y1 + height/2pos = [center_x, center_y]touch(pos)print(result+'\n')print(data)if __name__ == '__main__':OCR_getPos('姓名')

 

这篇关于OCR文字识别在UI自动化上的运用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1093002

相关文章

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Swagger在java中的运用及常见问题解决

《Swagger在java中的运用及常见问题解决》Swagger插件是一款深受Java开发者喜爱的工具,它在前后端分离的开发模式下发挥着重要作用,:本文主要介绍Swagger在java中的运用及常... 目录前言1. Swagger 的主要功能1.1 交互式 API 文档1.2 客户端 SDK 生成1.3

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

Python验证码识别方式(使用pytesseract库)

《Python验证码识别方式(使用pytesseract库)》:本文主要介绍Python验证码识别方式(使用pytesseract库),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录1、安装Tesseract-OCR2、在python中使用3、本地图片识别4、结合playwrigh

VS配置好Qt环境之后但无法打开ui界面的问题解决

《VS配置好Qt环境之后但无法打开ui界面的问题解决》本文主要介绍了VS配置好Qt环境之后但无法打开ui界面的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目UKeLvb录找到Qt安装目录中designer.UKeLvBexe的路径找到vs中的解决方案资源

如何基于Python开发一个微信自动化工具

《如何基于Python开发一个微信自动化工具》在当今数字化办公场景中,自动化工具已成为提升工作效率的利器,本文将深入剖析一个基于Python的微信自动化工具开发全过程,有需要的小伙伴可以了解下... 目录概述功能全景1. 核心功能模块2. 特色功能效果展示1. 主界面概览2. 定时任务配置3. 操作日志演示

Python使用python-docx实现自动化处理Word文档

《Python使用python-docx实现自动化处理Word文档》这篇文章主要为大家展示了Python如何通过代码实现段落样式复制,HTML表格转Word表格以及动态生成可定制化模板的功能,感兴趣的... 目录一、引言二、核心功能模块解析1. 段落样式与图片复制2. html表格转Word表格3. 模板生