首页
社区
课程
招聘
[原创]python实现触动精灵引擎找色找字函数,为机器学习添加手脚
发表于: 2020-12-21 18:40 5132

[原创]python实现触动精灵引擎找色找字函数,为机器学习添加手脚

2020-12-21 18:40
5132

最近沉迷于机器学习打游戏,发现py没有比较方便的抓图抓色识字的函数成为输入模型参数的x手脚,发现触动精灵这个比较好用当作action(其他自动化项目有点阴间)。可惜是lua写的,对于机器学习固定py来说调试并不友善,所以我就研究了这个。目前暂时没加机器学习模块,因为机器学习环境麻烦我暂时去掉了,改天有空在update,圣诞了祝大家快乐。

演示视频:python重写触动精灵核心引擎演示

pyAutomated

项目设计目的是在windows系统上模拟键鼠点击安卓虚拟机(我使用夜神模拟器6.6.1.2)实现自动化.

 

此代码重新实现了触动精灵核心功能,分别是找色函数findMultiColorInRegionFuzzy与识字函数Ocrtext,可以和官网上的找色工具与识字工具配合开发

 

两个函数的关键使用与触动精灵差别不大,如果你有什么更好的想法或者问题,请联系我的邮箱ljl260435988@gmail.com

运行环境:

1
2
3
windows10(150%放大倍数)
夜神模拟器6.6.1.2(分辨率1920x1080)
conda python3.7.9

python运行环境:

1
2
3
4
5
6
7
numpy==1.18.5
numba==0.50.1
pywin32==227
Pillow==8.0.1
pynput==1.7.1
pytesseract==0.3.6
opencv-python==4.4.0.46

conda安装tesserocr:

1
conda install -c conda-forge tesserocr

识字函数比较喜欢基于采用tesseract-ocr来进行识字需要安装conda以及其环境tesserocr,(采用conda安装的tesserocr自带tesseract-ocr环境)并把chi_sim.traineddata模型包放入tessdata文件夹中(此文件夹是程序tesseract字库的路径)
C:\Users(用户名)\.conda\envs\(你的环境名)\Library\bin\tessdata

复制成功后以管理员cmd启动验证方式

1
2
3
4
5
6
7
8
9
conda activate {your env}
tesseract --list-langs
 
看到有 chi_sim 就代表添加成功
(OCR) C:\WINDOWS\system32>tesseract --list-langs
List of available languages (3):
chi_sim
eng
osd

使用说明

首先初始化对象并获取窗口句柄

1
2
3
blRobot=Robot(class_name="subWin",title_name="sub",zoom_count=1.5)
 
blRobot.Get_GameHwnd()

接下来可以使用部分功能了,还有很多其他方式的实现就不一一说明

识字函数(可以和触动精灵字库使用):

1
xstr = blRobot.x_Ocrtext(ditu,"00E804,011805#03DC07,032006#08DD0B,072009",444,506,589,560)

tesseract版本识字效果识别图片只有一行字的效果比较理想

识字函数1(tesseract版):

1
2
3
4
5
6
tpl = blRobot.Print_screen()
xstr = blRobot.Ocrtext("06BE0B,06420B#00E804,011805#03DC07,032006#08DD0B,072009",
                    591,511,732,547,ril=RIL.TEXTLINE,
                    lang='eng',oem=1,
                    attribute=["tessedit_char_whitelist",
                    "0123456789,")

识字函数2(tesseract版,查找关键字并返回坐标):

1
2
3
tu_text_features = ['图','T']
tpl = blRobot.Print_screen()
xstr = blRobot.tsOcrtext(tpl,tu_text_features,173, 40, 285, 76,lang='chi_sim',psm=7, oem=1)

找色函数(可以和触动精灵官网的找色工具配合):

1
x,y = blRobot.findMultiColorInRegionFuzzy( "0xef6fdc", "24|5|0xffeecb,-7|30|0x2fb7ff", 90, 0, 0, 1919, 1079)

模拟虚拟机鼠标点击:

1
blRobot.click(125,33)

已知问题:

1.findMultiColorInRegionFuzzy 参数2不能为空字符串 "" ,也就是说找色必须要有两个点以上才行,待优化

 

项目链接:pyAutomated


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2020-12-23 04:39 被库尔编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//