面向监狱编程 - 石胖子写网游外挂 (4) 茅草屋版图片识别

 numpy不仅能做数据分析哦

01   图片识别也可以很简单

通用的高大上做不了,石胖子打算投机取巧,做个小而美的图片识别模块。但怎么取巧呢?

把需求做一下转换,正常的图片识别需求:

判断图片里有什么

石胖子的简化版

判断图片是不是什么

描述上差别不大,但是计算量可以大大降低。而且程序的答案从“是什么”,变为简单的“是不是”。

可以想象下,一个是简答题,一个是判断题。作答的难度是不是下降了一大截。

之所以游戏外挂可以这样,是因为游戏的特性,游戏在每个时段,需要关心的物品,或者说是任务类型,都是很少的。只要做有限的几次判断“是不是”就能清楚的确定内容了。

比如:

  • 是不是在人物属性界面
  • 是否有主线任务
  • 今天的日常做没做
  • 这个道具是不是xx.....

 

02 NumPy分分钟判断图片

既然问题的难度被降低到这么低,那么石胖子解决起来得心应手。

举个例子,游戏里有某个按钮,出现的时候需要进行点击。

首先要做的是把按钮的截图保存下来,比如:

在游戏进行时,当画面中有这个按钮时,程序通过原来的小图,来判断大图中是否存在这个按钮。

这里有几个小技巧

  • 通过数字矩阵进行图片比对

  • 分区增加比对速度

03   图片变成数字矩阵

首先获取图片的灰度图矩阵

这个时候就把按钮的图片变成了一个数字矩阵。代码也很简单

04 分区增加对比速度

增加图片对比速度的方法很多,使用矩阵的秩、进行压缩等。

对于游戏外挂而言,如果是进行按钮/道具等相关的图片对比,有一个很简单有效的方式来增加对比速度。

建立分区

假设间隔为10像素。那么脚本里的表现就是

按钮的截图坐标可以被10整除

图片对比的脚本增加步长=10

05 其他的自行车

除了以上的方式,还有很多方式可以用来快速进行游戏的图片识别。

比如某区域的多点识别,可以用来防止背景对透明框的判断影响。

怪物的定位,除了可以使用游戏自带的自动跟踪外,还能根据怪物头上的名字区块来进行定位

因为游戏内容的确定性,使得石胖子的工作量下降很多,很多在其他领域看来是扯淡的点子,在这里却是石胖子的“剥皮小刀”

 

                                                                                         <未完待续>

                                                                                           码农在中年

                                                                     

                                                                                  

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沙拉码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值