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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM