使用Autojs6找文字并点击
示例:
OCRFindCoord(0,982,1080,712,"看视频");
代码如下:
for(i=0;i<15;i++)
{
Button=OCRFindCoord(0,982,1080,712,"看视频");
if(Button==null)
{
sleep(1000);
}
else
{
click(Button[0],Button[1]);
//执行你的代码
break;
}
}
function OCRFindCoord(x,y,w,h,word)
{
if (!requestScreenCapture())
{
log("请求截图失败");
exit();
}
else
{
log("请求截图成功");
}
let rawimg = captureScreen();
log("截图成功");
//ROI区域(x,y,宽,高)
let img = images.clip(rawimg,x,y,w,h);
const Predictor = com.baidu.paddle.lite.ocr.Predictor;
// 指定是否用精简版模型 速度较快
let useSlim = false;
// 创建检测器
let predictor = new Predictor();
// predictor.cpuThreadNum = 4 //可以自定义使用CPU的线程数
// predictor.checkModelLoaded = false // 可以自定义是否需要校验模型是否成功加载 默认开启 使用内置Base64图片进行校验 识别测试文本来校验模型是否加载成功
// 初始化模型 首次运行时会比较耗时
let loading = threads.disposable();
// 建议在新线程中初始化模型
threads.start(function () {
loading.setAndNotify(predictor.init(context, useSlim));
// loading.setAndNotify(predictor.init(context)) 为默认不使用精简版
// 内置默认 modelPath 为 models/ocr_v3_for_cpu,初始化自定义模型请写绝对路径否则无法获取到
// 内置默认 labelPath 为 labels/ppocr_keys_v1.txt
// let modelPath = files.path('./models/customize') // 指定自定义模型路径
// let labelPath = files.path('./models/customize') // 指定自定义label路径
// 使用自定义模型时det rec cls三个模型文件名称需要手动指定
// predictor.detModelFilename = 'det_opt.nb'
// predictor.recModelFilename = 'rec_opt.nb'
// predictor.clsModelFilename = 'cls_opt.nb'
// loading.setAndNotify(predictor.init(context, modelPath, labelPath))
});
let loadSuccess = loading.blockedGet();
//log(`加载模型结果:${loadSuccess}`);
let start = new Date();
let results = predictor.runOcr(img.getBitmap());
let OcrCoord=null;
if(results&&results.length>0)
{
for(let i = 0;i<results.length;i++)
{
if (results[i].label==word)
{
button=results[i].bounds;
OcrCoord=[Math.floor(x+button.left+(button.right-button.left)/2),Math.floor(y+button.top+(button.bottom-button.top)/2)];
break;
}
}}
//log(OcrResult);
return OcrCoord;
// 释放模型 用于释放native内存 非必需
// predictor.releaseModel()
// 回收图片
rawimg.recycle();
img.recycle();
}