AUTOJS利用百度OCR识别找字点击 详细代码

//此段代码要先在百度智能云上注册并开通百度OCR文字识别,开通方法请自行百度
//https://login.bce.baidu.com/?account=&redirect=http%3A%2F%2Fconsole.bce.baidu.com%2F#/index/overview

//首先获取百度的token
var token = baidu_access_Token()

/**
 * @function baidu_access_Token 获取百度Access_Token的函数
 */
function baidu_access_Token() {
    //注册百度云识别时给的,可以登录百度智能云在创建应用里面查看到。
    var API_Key = "zcftgkhLUernYU3upuSgxG"
    //注册百度云识别时给的,可以登录百度智能云在创建应用里面查看到。
    var Secret_Key = "poexZNpZWNUNFcVpocBNPk8vWBidET";
    //access_token获取地址,向授权服务地址https://aip.baidubce.com/oauth/2.0/token发送请求(推荐使用POST),并在URL中带上以下参数:
    //access_token = http.get("https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=YIKKfQbdpYRRYtqqTPnZ5bCE&client_secret=hBxFiPhOCn6G9GH0sHoL0kTwfrCtndDj").body.json().access_token;

    var 提交地址 = "https://aip.baidubce.com/oauth/2.0/token"
    var token_Res = http.post(提交地址, {
        grant_type: "client_credentials",
        client_id: API_Key,
        client_secret: Secret_Key,
    });
    var token = token_Res.body.json().access_token
    //  log(token_Res)    
    //  log(token)
    return token
}




//找字点击

//log(BaiDu_Ocr_Click("中"))

/**
 * @function BaiDu_Ocr_Click 点击百度识别的文字,点击成功返回true,失败返回false.
 * @param str 要点击的文字。
  */
function BaiDu_Ocr_Click(str){
    var isClick=false
    //我这个利用模拟器在测试,因为AUTOJS的截图在模拟器上老出错所有改用Shell截图
    var a = shell("screencap -p /sdcard/Download/screen.png", true);
    //读取图片
    var img = images.read("/sdcard/Download/screen.png")
    //转化成基于64的图片
    var imag64 = images.toBase64(img, "png", 100); 
    var SiteInfo_ocr_Url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general"; //含位置信息,每天可用500次。
    var ocr_Res = http.post(SiteInfo_ocr_Url, {
        headers: {
            "Content - Type": "application/x-www-form-urlencoded" //连接的请求方式,一般是'content-type': 'application/json',
        },
        access_token: token,
        image: imag64,
    })
    var json = ocr_Res.body.json().words_result;
    json.forEach(function(w){
        //log(w.words)
        if (w.words.indexOf(str) != -1) {
        // if (w.words==str){
            log(w.words)
           isClick = click(w.location.left, w.location.top); //点击指定的文字
            return
        }
    })
    return isClick
}





//查找文字

log(BaiDu_Ocr_FindWord("基本"))

/**
 * @function BaiDu_Ocr_FindWord 百度识别查找文字,找到返回true,失败返回false.
 * @param str 要查找的文字。
  */
 function BaiDu_Ocr_FindWord(str){
    var isClick=false
    //我这个利用模拟器在测试,因为AUTOJS的截图在模拟器上老出错所有改用Shell截图
    var a = shell("screencap -p /sdcard/Download/screen.png", true);
    //读取图片
    var img = images.read("/sdcard/Download/screen.png")
    //转化成基于64的图片
    var imag64 = images.toBase64(img, "png", 100); 
    var Common_Ocr_Url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic"; //普通文字识别,每天可用5000次。
    var ocr_Res = http.post(Common_Ocr_Url, {
        headers: {
            "Content - Type": "application/x-www-form-urlencoded" //连接的请求方式,一般是'content-type': 'application/json',
        },
        access_token: token,
        image: imag64,
    })
    var json = ocr_Res.body.json().words_result;
    json.forEach(function(w){
        //log(w.words)
        if (w.words.indexOf(str) != -1) {
            log(w.words)
            //如果找到了就返回
            isClick=true
            return
        }
    })
    return isClick
 }

 

你可能感兴趣的:(autojs)