tesseract-ocr识别图片文字,辅助测试

1.场景
想从UI上抓取“性能狗”悬浮窗的一些性能参数值,传统的UI获取元素的方式无法获取。
(性能狗有二次开发的现成接口,但是是商业版,需要花钱)

2.问题解决
可以借助tesseract-ocr工具,读取图片文字的方式,获取需要的文字;
tesseract-OCR是一个开源的OCR引擎,能识别100多种语言,专门用于对图片文字进行识别,并获取文本。但是它的缺点是对手写的识别能力比较差。

此时我们就可以先截取app图片,然后对图片上的文字进行读取。

3.工具、三方库的安装
(脚本环境:mac + python)

3.1 pc安装tesseract-ocr工具

# 需要提前安装brew工具,就不在这里赘述了
brew install tesseract
# 安装过程中可能会有brew工具更新的一些操作按照提示操作即可
# 比如:sudo chown -R $(whoami) /usr/local/var/log

# 安装完成后
tesseract -v  # 出现版本信息,代表安装成功
'''
tesseract 4.1.1
 leptonica-1.81.1
  libgif 5.2.1 : libjpeg 9d : libpng 1.6.37 : libtiff 4.3.0 : zlib 1.2.11 : libwebp 1.2.0 : libopenjp2 2.4.0
 Found AVX2
 Found AVX
 Found FMA
 Found SSE
'''

3.2 安装python的pytesseract库

pip install pytesseract  
# pytesseract是python中操作tesseract-ocr工具的现成库

4.脚本实例

import os
from PIL import Image
import pytesseract
import time

def get_pic():
    # 截取手机端图片
    os.system('adb shell screencap /sdcard/test.png')
    os.system('adb pull /sdcard/test.png /Users/mimac/Desktop')
    time.sleep(2)
    # 抠取需要的文字内容 (我只需要左上角一小块的文字信息)
    img = Image.open('/Users/mimac/Desktop/test.png')
    im = img.crop((0, 75, 117, 136))  # 真能用到case中时,按屏幕比例切割即可
    im.save('/Users/mimac/Desktop/test2.png')
    time.sleep(2)
    img2 = Image.open('/Users/mimac/Desktop/test2.png')
    # 调取pytesseract库,读取图片,获取文字
    en = pytesseract.image_to_string(img2)
    print(type(en))
    print(en)

app页面:
在这里插入图片描述

截取的图片:
在这里插入图片描述
打印结果:

<class 'str'>
FPS 0.0
CPU 0%
# 打印结果类型是字符串,获取具体数据时,继续操作字符串即可

截图注意:
文字页面尽量干净,底部不要有其它图案,
否则会影响文字读取的准确性。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值