【JS API】脚本语言-设备控制接口说明-识别屏幕文字
设备控制接口说明-识别屏幕文字
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)的文字,屏幕显示为下图:
//获取当前设备对象
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);
}
运行结果:
获取到的文字是 : 没有会话信息