python识别文字坐标_python识别图片上的文字并返回文字在图片中的坐标

最近在做app的UI自动化测试过程中,遇到UI大改版的问题。原本使用Airtest的图片比对来实现点击事件,改版后原有用例无法识别只能重写用例(ps:我们的app不是native开发使用的flutter技术所以无法通过元素来定位)想到工作量太大也不是解决问题的根本办法,观察新版UI发现图标和颜色改变文案没有改变。因此考虑通过识别图片上的文案,然后获取文案的坐标通过坐标来实现点击操作。后来搜索到百度的图文识别的库,识别文字并返回文字坐标。(此功能为收费接口,不过每天有免费调用次数),封装方法如下:

首先安装库:pip install baidu-aip

from aip import AipOcr

""" 你的 APPID AK SK """

APP_ID = '你的 App ID'

API_KEY = '你的 Api Key'

SECRET_KEY = '你的 Secret Key'

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

""" 调用通用文字识别(含位置信息版), 图片参数为本地图片 """

"""输入需要识别的文案和图片地址,返回文案在图片上的坐标如:[368,96]"""

def return_cordinate(text,imagepath):

""" 读取图片 """

with open(imagepath, 'rb') as fp:

"""识别到信息以字典形式返回"""

dic = client.general(fp.read())

"""遍历字典与想要的文案对比如果对比到就返回坐标"""

for word in dic.get("words_result"):

if word.get("words") == text:

return [word['location']['top'],word['location']['left']]

else:

return None

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值