下载 App

托纳姆物语编程系列(3)——如何区分鸟类翅膀和厚鸟喙

修改于2024/05/26878 浏览整活专区
兽品图标都是一样的,区分的唯一标准就是汉字,所以我们得让脚步学会识字,幸运的是OCR已经是十分成熟的计算了我们只需要几行简单的命令就可以实现文字识别。

一丶环境安装

这里直接贴上连接,gitee上的开源项目汉字说明都很详细就不多说了。

二丶代码编写

众所周知,物品名称出现的都是固定位置,所以我们只需要固定识别这个范围内的图文就可以了
TapTap
现在终端输入uiauto.dev借助uiautodev获得图文信息
TapTap
TapTap
一行代码就可以裁剪出来了,一定要注意参数填写的顺序
TapTap
TapTap
上面PaddleOCR函数里具体参数详解可以看下面这个链接
代码就放这里
horizontal linehorizontal line
import cv2 as cv
import uiautomator2 as u2
from paddleocr import PaddleOCR, draw_ocr
import os
#连接设备并截图
d = u2.connect()
print(d.info)
screen = d.screenshot(format='opencv')
ocrimg = screen[429:463, 47:441]    #[开始的Y坐标:结束的Y坐标, 开始的X坐标:结束的X坐标]
os.environ['KMP_DUPLICATE_LIB_OK'] = 'True'  # 设置允许重复加载动态链接库,若不允许,使用jupyter运行时内核会挂掉
# Paddleocr目前支持的多语言语种可以通过修改lang参数进行切换
# 例如`ch`, `en`, `fr`, `german`, `korean`, `japan`
ocr = PaddleOCR(use_angle_cls=False, use_gpu=False,
                lang="ch", show_log=False)  # need to run only once to download and load model into memory
ocr_text = ocr.ocr(ocrimg, cls=False)  # 进行识别
print(ocr_text)
for line in ocr_text:
    out_text = line[-1][-1][0]
    print(out_text)
horizontal linehorizontal line
我们可以看到paddleocr的强大功能不仅仅局限在这里面,它还可以用作文本定位所以我们可以用来完成一个相对复杂的功能,比如找到我好友列表的指定一个人给他发送一个邮箱。
这里就给我第一次玩托纳姆物语遇到的第一个朋友发一条消息
代码放在后面
不知道为什么不能出现time。sleep(1),哎这taptap
下面的延时一秒应该是
TapTap
import time
import cv2 as cv
import uiautomator2 as u2
from paddleocr import PaddleOCR, draw_ocr
import os
def findtext(Ocr, img, text, click=False):
    center_x, center_y = -1, -1
    result = Ocr.ocr(img, cls=False)  # 进行识别
    result = result[0]
    print(result)
    for line in result:
        if line[1][0] == text:
            bbox = line[0]
            xy1, xy2, xy3, xy4 = bbox
            center_x = (xy1[0] + xy3[0]) // 2  # 计算中心点横坐标
            center_y = (xy1[1] + xy3[1]) // 2  # 计算中心点纵坐标
            if click:
                d.click(center_x, center_y)
    return center_x, center_y
if __name__ == "__main__":
    # 连接设备并截图
    d = u2.connect()
    print(d.info)
    延时一秒
    os.environ['KMP_DUPLICATE_LIB_OK'] = 'True'  # 设置允许重复加载动态链接库,若不允许,使用jupyter运行时内核会挂掉
    # Paddleocr目前支持的多语言语种可以通过修改lang参数进行切换
    # 例如`ch`, `en`, `fr`, `german`, `korean`, `japan`
    ocr = PaddleOCR(use_angle_cls=False, use_gpu=False,
                    lang="ch", show_log=False)  # need to run only once to download and load model into memory
    screen = d.screenshot(format='opencv')
    findtext(ocr, screen, "信箱", True)
    延时一秒
    screen = d.screenshot(format='opencv')
    findtext(ocr, screen, "发信", True)
    延时一秒
    #这里就不用找了,有点麻烦主要为了展示功能
    d.click(753, 565)
    延时一秒
    screen = d.screenshot(format='opencv')
    findtext(ocr, screen, "岁翼", True)
    延时一秒
    d.click(731, 233)
    d.send_keys("好久不见")
    d.press("enter")
    d.click(593, 393)
    d.send_keys("对不起,是我先不辞而别了,还能在回来看看吗?")
    d.press("enter")
horizontal linehorizontal line
 
波多姆诶截图
波多姆诶
女朋友做的,周末愉快[表情_送花]
1 赞
AScript--一个简单的ui截图
AScript--一个简单的ui
趁着国庆,补一个ui,ui教程,以后有时间再写吧 通过百度网盘分享的文件:airscript 链接:https://pan.baidu.com/s/1pl7ZwsqATeKCuprx3P1MCg?pwd=mm3n 提取码:mm3n --来自百度网盘超级会员V4的分享 里面有一个pj的光速虚拟机,可以在安卓手机上多开tlom。 本来想上架,这样你们就不用配置环境也能用了,但是这个开发平台是要收费
12 赞
4 回复
托纳姆物语编程系列(6)—— 如何认路?截图
托纳姆物语编程系列(6)—— 如何认路?
前段时间看到两年前的东西还有人看,就想着再写一点什么,本来再tlm里面做一个自动驾驶来着,但是有点过于花时间了。一是tlm视角太受限,二是我一个人每次重新训练模型很吃力。不过好在我还是基本完成了视觉部分的功能,本文中以前文章提到的东西我就不会在提了,见谅。 1. 什么是实例分割 说这个之前我得让你知道什么是对象检测,放一个图你就明白了。 对象检测识别场景中你感兴趣的目标并输出是一组边界框,这些
16 赞
13 回复
00:51
暗龙还是太强大了,我只好以绝望挥剑截图
暗龙还是太强大了,我只好以绝望挥剑
1.不想吃操作,攻略看,@牛匕年糕的适合,我这种不搞操作的。 给和我一样不懂想玩的说一下: 蓝的情况下,我个人可以放两次联合巨剑,第三次联合巨剑,方向键,向前拖动,也就是连机点转化的时候,方向键,向前拖动打出再联合巨剑。 2.想吃操作看他攻略@卖萌的咕咕姬他的视频操作帅,但我个人打不出来。 [这些是个人理解]
10 赞
8 回复
对比我两年前写的小说
作品名称《我真不想做魔头啊》 第一章:第七序列 黑夜笼罩群山,明月悬在天际,冷白的月光透过林冠缝隙,在腐叶地上淌成蜿蜒的光带。 “嘎——”一声凄厉的鸦鸣突然打破寂静,像是拉响了警报。 下一刻,伴随着翅膀急促扇动声,藏在枝桠间的鸦群轰然惊散,黑黢黢的影子划过月光,转瞬消失在密林深处。 远处,一个身影僵硬地蹦了出来。 它双眼猩红,衣衫褴褛,披肩的乱发随风飞舞,每一次蹦跳都伴随着关节“咯吱”的脆
5 赞
01:42
异抗压血魔导(轮椅输出)神圣教导之力截图
异抗压血魔导(轮椅输出)神圣教导之力
异抗压血魔导三维分析(满5星) 生存:★★★★★ 输出:★★ 辅助:★★★★ 声明:(等后续点燃补强了_(:з」∠)_) 有什么意见或者建议可以在帖子下面讨论(๑>؂<๑) 1.不要想着魔导输出能多高,想玩输出可以看法师攻略。 2.优点是不惧怕百分比伤害(把假血算在内的除外),正常boss伤害大部分也能抗(高额双抗)。 3.刚需卡斯魔导,没有的话,也不要考虑,附魔魔导不行。 4.不是很建议从
151 赞
108 回复
老登转生攻略(非正经攻略),如何快速起号少坐牢截图
老登转生攻略(非正经攻略),如何快速起号少坐牢
首先我又重生了,前三世都在与珂尔连生体的决战中不幸战败,这一世我要拿回属于我的一切,v我50聆听我的复仇计划。 好了接下来说正题,因为是开速起号,所以肯定是要氪金的(开角色栏),起号时间最好选在有648送追2的时候这样可以直接648加基金直接开满角色栏(可以省200块,如果是当乐那么性价比只比月卡低),非充值活动期间至少买基金加月卡这样领完基金可以至少开9个角色栏加上初始1个和勋章2个就有12个角
17 赞
4 回复
全对属门牌哦截图
全对属门牌哦
收集完了,单独为对属开一贴
29 赞
3 回复
通用广域退身弓一图流295版本截图
通用广域退身弓一图流295版本
稍微测试了下近威远威枯飞叶,三种配置其实差距拉不开太多(国服没有吉三),和理论数据差不多,为了方便这里给通用的推荐就直接堆枯飞叶就行,感兴趣的可以自己算算 碎碎念: 再测测晚点出对属毕业的推荐配置 狮哥东可以换阿鲁,看你嫌不嫌麻烦保持7m 不会算命中线打定点用单孔奈亚达就行 不堆远的情况下广域即使只有3hit也比气弹强,堆远持平,超过3hit广域完胜 退身印记实时判定惯性,广域的4次退身伤害第1次
63 赞
22 回复
【弩盾】305版本萌新也能拥有的性价比输出截图
【弩盾】305版本萌新也能拥有的性价比输出
武器:15%ATK10%DEX11%爆伤23爆伤(升级换属对属) 王石:单孔爆山,双孔爆山+真魔晶 盾:鱼盾 衣服:12%ATK10%DEX23爆伤30暴击(11%A能稳附,升级换对属灵双爆伤) 王石:阿鲁+萨波(枯飞叶) 追加:米特(打高防换姜饼人,升级换死灵头纱,未来铁匠铺T0皮革束腰) 王石:邪蕾+祖库托(枯飞叶也可以) 特殊:海马手环(街道咩咩/酥饼都可以,升级换闪光/鲑鱼) 王石:枯飞叶
79 赞
82 回复