• 分类目录: 200 个;
  • 标签: 10638 个;
  • 资讯: 13827 篇;(待审:221 篇);
  • 网站: 12813 个 (待审:4529个);
  • 评论: 8 个 (待审:1 个) ;
  • 今日审核: 0 个 (待审:1 个) ;

按键精灵如何设置循环(按键精灵找图找到后跳出循环)

时间:2021-12-04 07:10:13 栏目:站长资讯

按键精灵如何设置循环(按键精灵找图找到后跳出循环)

由于篇幅比较长,分两期更新。本期主要讲找图的原理以及偏色的原理。

图色原理

无论是找图、找色、比色、找字这些命令都可以统称为图色命令,所有图色命令都有共同的特点,就是它们针对于图像像素点的颜色值和位置进行处理的。

图像像素点是什么

按键精灵如何设置循环(按键精灵找图找到后跳出循环)

我们把图像放大会发现,图像是由一个个颜色块组成的,由于这些颜色块非常小,在不放大的情况下,我们是看不出它们有明显分块界限的。那这些带有颜色的小方块,就是图像的像素点。

像素点通常是近似正方形的,这里我用的是近似,它是由显示器屏幕的硬件决定的。

像素点是在一个二维平面上排列的,分为横向和纵向,大量的像素点排列在一起就组成一张图像了。

找图命令的原理

还是以上面那张图为例,我们截取一个4*4的图片,开始找图。

按键精灵如何设置循环(按键精灵找图找到后跳出循环)

这里我把4*4图片的每一个像素点都标注了序号,一共是16个序号。

下面说一下找图的过程,我以从左上到右下顺序的找图为例。

①从马里奥图片左上角的第一个像素开始,寻找序号1像素点的颜色值,如下图那样一个个像素进行比对。

按键精灵如何设置循环(按键精灵找图找到后跳出循环)

②假设找到了和序号1一样颜色的像素点,记录一下这个点的位置。

③开始对上一步中找到点的下一个像素点和序号2的颜色比对是否一样,如果一样的话,再用下一个像素点颜色比对序号3的颜色,依次类推一直比对到序号16的颜色。比对颜色也是按照4*4的位置比对,就是序号1-4是第一行,序号5-8是第二行……

④上一步比对序号2-16颜色有两种可能性:

一是完全一样,如果完全一样说明我们找图成功了,找图命令返回步骤②记录的位置,也就是我们常用的intx,inty。

二是比对到某个序号颜色值不一样,说明比对失败,继续从步骤②位置的下一个像素点开始,找寻序号1像素点的颜色,循环上面的操作,以此循环往复。

⑤循环比对所要找图区域内的所有颜色,如果比对完所有颜色都没有比对成功,说明找图命令没有找到图,为了方便脚本判断,会把-1赋值给intx,inty。

以上这些步骤就是找图的原理。

那么想一下哪些因素会影响找图速度?

①获取像素点颜色值的快慢,这也是为什么用“截图到内存命令”会提高找图速度的原因。

②计算数据的速度,也就是比对两个像素点颜色值是否一样的用时。

③所要找的图片越靠前找到用时越少。

④序号1像素点在整个找图区域内出现的次数,次数越多可能比对的时间就多,这里用“可能”是因为如果第一次或者前几次出现就找到图了,下面的就不需要继续比对了。

⑤所找图的图片尺寸越小速度越快,比如文中的例子是4*4的图,只要比对16个颜色就可以,如果是50*50就要比对2500个点。当然对于现在计算机来说,16和2500的计算用时的差距是微乎其微的,但是如果进行循环找图,比如循环1万次,16万和2500万,用时就会有明显的区别了。

针对截图在说一下,是不是图片越小越少,不是的,如果只有1个像素点,那么会有大量的重复可能性,从而导致找图找到错误的位置,我们截图本着一个原则:在保证截图具有唯一标识性的前提下,图片越小越好。

偏色和相似度

使用找图命令的时候,还有两个参数,它们在上面找图原理没有说到,就是偏色和相似度。

它们是做什么用的呢?

偏色和相似度的作用是一样的,都是为了增加找图的容差率(容错率),就是把与要找图非常接近的颜色也看做是有效的颜色,从而实现当找图区域的颜色发生细微变化后,还能通过找图命令找到我们想要的位置坐标。

下面开始介绍一下偏色:

(一)偏色

在找图代码中,这个参数默认是000000,也就是无偏色。这六个数字代表什么呢?

它们分成3组,每一组分别代表一种颜色。

按键精灵如何设置循环(按键精灵找图找到后跳出循环)

这里需要强调一下颜色顺序是蓝色、绿色、红色,如果你有关于颜色的基础,是不是想说颜色值的顺序不是红绿蓝吗,没错在多数颜色相关的软件或者程序中确实是红绿蓝RGB,但是按键不是,也不知道编写按键的作者是怎么想的,记住这个顺序就好。

我们还是以上面马里奥找图为例:

序号1的像素点

挣钱游戏有哪些(来钱快的游戏)这段时间,闲的没事干,就玩了下那些头条上的,赚钱的小游戏,一进去就是看广告,前期平均每个游戏也就赚个两三块钱的样子,每几分钟就能提现几毛钱,,越往后就越搞不到了,后面广告越来越多,到后期收益会越来越少,广告强行跳出来,都不掉,没事闲着玩

按键精灵如何设置循环(按键精灵找图找到后跳出循环)

颜色值是:d6330a,按照上面颜色值分组:

蓝色数值:d6

绿色数值:33

红色数值:0a

这里面数值为啥有字母呢,因为颜色值是十六进制的,而不是我们日常的十进制。

十进制:0123456789 每满10个数字进一位

十六进制:0123456789ABCDEF 每满16个数字进一位,这里面A就相当于10,B就相当于11,C就相当于12,D就相当于13,E就相当于14,F就相当于15。

关于十六进制和十进制转换自行百度,这里不讲。

我们以蓝绿红每个颜色的最小偏色值为例,来了解一下偏色。

每个颜色偏色的最小值是01,那么偏色值就是010101,假设我们给找图命令加上这个010101的偏色会有什么影响呢?

原本我们找序号1的颜色值是d6330a,如果加上偏色010101,那么符合要求的颜色值,就由原来的1个变成27个。

符合要求颜色值的计算公式是d6330a010101

按颜色拆分计算:

蓝色:d601得到范围是d5~d7

绿色:3301得到范围是32~34

红色:0a01得到范围是09~0b

这些颜色范围得到的27个颜色是什么?

d53209 d5320a d5320b

d53309 d5330a d5330b

d53409 d5340a d5340b

d63209 d6320a d6320b

d63309 d6330a d6330b

d63409 d6340a d6340b

d73209 d7320a d7320b

d73309 d7330a d7330b

d73409 d7340a d7340b

红色是未偏色的颜色,其他都是偏色后,其实偏色可以理解为颜色偏移。

原本一个颜色值d6330a,只是偏色值增加了01,就变成了27个颜色,那么找图命令中,比对序号1的颜色值时,就不是比对1个颜色,而是27个颜色,这样符合要求的颜色就有27种可能性,这么一来,找图的容差率(允许差别)就高了。

当我们增大偏色值,这个找图的颜色范围会继续扩大。

扩大的颜色范围计算公式:

(2*蓝色偏色 1)*(2*绿色偏色 1)*(2*红色偏色 1)

我们刚刚每个颜色最小偏色01的计算结果就是:

(2*01 1)*(2*01 1)*(2*01 1)=3*3*3=27

这里有一些特殊情况,颜色值是有上下限的,最小值是00,最大值是ff,如果最小值00再减去任何值都还是00,如果最大值ff再加上任何值都还是ff。

回答新手一个常问的问题,偏色值要填多少合适呢?

偏色值的大小并不是一个固定的数值,但它有一个判断趋势,要根据你的需求来定,比如说:

你希望找的颜色非常精准,那偏色值就要填小一点,甚至是六个0这种无偏色的情况。

如果你希望找的颜色相近的就算符合要求的,那么偏色就稍微填大一点。

当然这里注意不要太大,否则就会把相差很大的颜色也误认为是符合要求的颜色。

在网上很多教程的作者告诉你,偏色直接填333333或者是222222,这个数字可以不,答案是可以。偏色333333后,符合颜色的增加峰值到总颜色的6.51%,偏色222222后,符合要求的增加峰值到总颜色的2.13%。

偏色你填333333可以,但是不要把它当成固定的偏色值,也不要认为偏色的6个数必须都是一样的,你填333234也可以,填302010也行,记得一定要看需求。

再有一个问题,偏色值高点好还是低点好?

偏色低:容差率低,速度快。

偏色高:容差率高,速度慢。

两种各有优缺点。

【未完待续。。。】

标签:

版权声明:

1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

2、本站仅提供信息发布平台,不承担相关法律责任。

3、若侵犯您的版权或隐私,请联系本站管理员删除。

4、、本文由会员转载自互联网,如果您是文章原创作者,请联系本站注明您的版权信息。