Hamibot 中 OCR 识字的使用示例
用途
它是在游戏或者某些层级复杂的页面中,无法 get 控件下的方法。 本文将示例本地识别和调用百度云的两种识别方式。 本地识别的优点是速度快且稳定,免费;云识别的优点是识图能力强大。
两种方式
1)使用 hamibot 自带的本地识别
效果图:

这里新建了一个函数 ocr_find() 它的功能是:如果找到括号内字符,就返回其在屏幕上的坐标,反之,则提示。 大致流程如下

所以 res["results"][index_right]["bounds"]["left"] 就可以定位到原始分析数据中某一组的左边框坐标,使用 for/in 遍历,即可匹配出要找的字符串。再之后就可以拿到它的详细信息,怎么使用它就自由发挥了。
2)调用百度云 OCR 模块

这里是你的 AK 和 SK,百度云内的操作不再细说。
先看第二个函数 function Baidu_ocr,简单说就是 1)将图片 转为 base64 2)填好自己的账号信息,选择图片参数(详细见官网文档) 3)将这些信息 post 给百度云 4)拿到百度云返回的数据
看第一个函数 function ocr_click 1.截屏,图片传给 function Baidu_ocr 拿到百度云的识别结果 2.用 for 去一个个比对,匹配成功则返回,无结果就提示 3.拿到坐标,点击其左上角 这里百度云返回的数据和上面 hamibot 自带识别的数据都是层层堆叠的,需要一层一层剥开,我这里比对的都是文字,你可以比对坐标。
或者自定义些别的功能,比如:记录某字符串在屏幕上出现的次数和位置
注意
1.有时,屏幕上有“星期一”,但是搜索“星期一”却搜不到,大概率是被识别成“星期”和“一”两组,所以匹配不到, 可以 减少关键字 或者是拆分成单字去搜索,识别结果以组合数最多的为最高优先...方法自选。