Script 1.8.1

analyzeText

原型:

analyzeText(x1, y1, x2, y2, lang, mode)

是否支持多设备:

不支持

对应的 REST API:

查找文字

描述:

查找手机屏幕上指定范围的文字,即获取指定区域内的文字,该函数依赖 uploadTessData。指定的 traineddata 文件, 简单地说 traineddata 就是字体库,有了它,才能识别出我们指定范围的文字, 更多信息请查看Google OCR 在 Total Control 的应用

参数:

x1: 整型,屏幕搜索区域左上角 X 坐标 (如何获取屏幕指针坐标值?请看这里)
y1: 整型,屏幕搜索区域左上角 Y 坐标
x2: 整型,屏幕搜索区域右下角 X 坐标
y2: 整型,屏幕搜索区域右下角 Y 坐标
lang: 字符串,要搜索指定区域文字对应的语言,注意: TrainedData的文件名一定为{lang}.traineddata。如中文简体是chi_sim.traineddata;英语是eng.traineddata
mode: 字符串,搜索模式,有以下几种模式:

singleline: 要找的字大小相同,并且在同一行以内。
multiline: 要找的字大小相同,并且整齐排列在多行中。这个参数相当耗时,建议少用。
singlechar:单个字母,不知道支持中文否......
singleword: 单个单词
singlecolumn: 要找的字大小相同,并且在同一列中
multicolumn: 要找的字大小相同,并且分布在多列中
number: 要找的是阿拉伯数字
noorder: 一堆杂乱的字
其余:如果mode值并非上面任何一个取值,那么analyzeText函数会根据图片的实际情况进行分析。
返回值:

字符串: 解析得到的文字
解析文字失败,可通过 lastError() 函数获取具体的错误信息。

示例:

获取屏幕上指定区域坐标(261,608,433,656)的文字,屏幕显示为下图:
ocr_05.png

//获取当前设备对象
var device = Device.getMain();
// 上传traineddata文件
var ret = device.uploadTessData("E:\\sigmaTC\\产品20180611\\orc\\chi_sim.traineddata"); 
//这里的路径为traineddata文件在当前PC上的存储位置。
if(ret == true) {
    //用"singleline"模式搜索文字
    var text = device.analyzeText(261,608,433,656,"chi_sim","singleline");
    print("获取到的文字是 : " + text);
}

运行结果:

获取到的文字是 : 没有会话信息