• 新浪微博:
  • 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:03-18

按键精灵安卓版
立即下载

软件版本:3.5.3
软件大小:46.2M
更新时间:03-02

按键精灵iOS版
立即下载

软件版本:1.7.3
软件大小:29.2M
更新时间:12-06

最新企业版UiBot
立即下载

软件版本:3.3
软件大小:282M
更新时间:08-06

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[郭立员] 【知识盲区】找图、多点找色、找字的原理(续) [复制链接]

1#



大家好,我是3分钟学堂的郭立员,今天给带来一期基础知识的文章,主要讲一下找图、多点找色、找字之间的联系与区别,这是一篇基础原理的教程,可能会有些枯燥。


由于篇幅比较长,分两期更新,这是第二期,本期主要讲图色命令相似度参数的原理以及多点找色和找字的原理,如果没看过第一期,可以先看昨天的文章。


相似度

上期文章,我们讲完了找图命令的偏色这个参数的原理,这期我们来说说相似度这个参数的原理。


关于相似度可能很多朋友会有一些误区,比如拿找图参数中默认的0.9相似度来说:


误区一】假设找的图是10*10的图片,一共100个像素点,如果相似度是0.9,那么就是90%相似,100个点中有至少90个点一样,就认为是符合要求的图。


误区二】假设要找的颜色点是646464,为啥是这个颜色,因为它换算成10进制以后,蓝色、绿色、红色就是100,100,100。如果相似度是0.9,那么每个颜色符合要求的就是90~110。



以上两个都是误区,那么相似度到底是怎么计算呢?


还是以相似度0.9为例,那么容差的范围就是±10%,这个10%是针对于颜色的色阶(256个等级)的。


计算公式:256*10%=25.6

这是一个颜色的,蓝绿红一共3个颜色分量,所以容差就是25.6*3=76.8


得到容差值以后,我们怎么算出颜色值的有效范围呢?


还是以646464这颜色为例,76.8这个差值怎么分呢?
可以单独给蓝色,那么100+76.8=176(结果取整数部分),100-76.8=23(结果取整数部分),颜色的范围就是176464~B06464。同样的道理绿色和红色也是这样计算。


除了给单一颜色分量以外,还可以把76.8分给每一个分量,比如均分每一个颜色分量就是±25.6的。当然随意分也可以。


说到随意分,可不可以这样,比如给蓝色100,给红色-30,两个加起来是70,也在76.8这个容差范围内,这样写行不行?


答案是不行,我们说的±指的是变化趋势,3个颜色分量相加是绝对值相加,那么给蓝色100,给红色-30的结果是100+负30的绝对值,也就是130,已经超出了76.8的容差范围。


那么相似度是0.9时,有效容差范围是蓝绿红3色变化数值的绝对值相加在76.8这个范围内,就是符合要求的颜色。


总结一下,相似度的容差范围计算公式:

容差值=256*(1-相似度)*3


有效颜色:(蓝色 变化量+绿色 变化量+红色 变化量)<=容差值


多点找色的原理


多点找色我们还是以上一期的马里奥那张图片为例:




无论是找图也好,还是多点找色也好,其实它们都是找一个符合要求颜色点的坐标。


这句话什么意思呢?这句话重点是“找一个点坐标”,上一期我们找图其实就是找序号1那个颜色点的位置,找到和序号1相同颜色的像素点以后,再判断后面15个点,从而得到序号1的像素点坐标。


多点找色要找的那个点相对于找图就比较“随意”了,找图只能找序号1的点,而多点找色就没有这个限制了,上图中1-16号点,都可以当做找色点。


多点找色的原理:


它也是在找色范围内,逐一匹配要得到坐标那个点的颜色,如果匹配到了,接下来和找图不同,找图只能是2-16号点依次比对颜色是否相同。而多点找色的匹配规则是可以自己写。





比如上图,要获取坐标的点可以不是1号点,可以是任意点,我们以7号点为例,规则可以是这样:


7号点上一行左侧移1点和2号点是不是一样;

7号点上一行右侧移1点和4号点是不是一样;

7号点下一行左侧移2点和9号点是不是一样;

7号点下一行右侧移1点和12号点是不是一样;

7号点下二行左侧移1点和14号点是不是一样;


如果上面5个条件都满足,那么和7号点匹配一致的点,就是我们要的点,它的位置就是多点找色命令返回的坐标。


如果不满足5个条件之一,就要继续匹配7号点,循环上面的过程。


多点找色和找图的优缺点



本质上说找图命令就是多点找色的一种特殊情况,它匹配规则是矩阵式逐个匹配,就如例子中一样,需要把16个点都匹配一致。


多点找色写规则的时候也可以按照这种矩阵式匹配,那就和找图一样了。


当然我们多点找色通常是匹配几个点就行。


【优点】


多点找色由于匹配的点相较于找图少很多,所以匹配耗时也就少很多,所以多点找色要比找图速度快。


上一期有人问怎么找透明图,其实多点找色就是透明图,你可以看例子,白色部分都是不需要匹配的地方相当于图片的镂空,这也是它的优点。


【缺点】


多点找色由于找点比较少,存在误找的情况,比如要找色区域中有两块颜色相近的地方,如果多点找色选择的点正好是两个地方都有的,就会造成找色错误。


所以在用多点找色的时候,选颜色点不要太随意,尽量找具有唯一代表性的颜色,防止误找色,而且选点数量也不能太少。


找字的原理

关于找字命令的详细教程,我在基础课21课已经讲过了,它的原理和找图是一样的。


区别在于哪里,找图是全色系的匹配,找色是黑白二值化的匹配。


具体是什么意思呢?


找图的时候,我们是获取颜色点信息,然后和我们要找颜色比较是不是一样。


找字的时候,我们要先把当前要匹配像素点的颜色转成黑或者白,然后进行颜色匹配,这个相对于多了一个步骤,由于一张图有大量的像素点需要匹配,这也是为啥找字命令比找图命令慢很多的原因。


这里简单说一下黑白二值化的原理,在做字库的时候,会取一个颜色值,这个值作为基准颜色,会用白色表示,然后其它和这个颜色不一样的都用黑色表示,从而实现了黑白二值化。


考虑到一个找字的颜色可能存在细微差别,会把基准颜色+偏色,这样基准色就变成了一个范围色,使字体结构更加饱满。





关于找字这部分就说一下原理,具体操作部分就不说了,感兴趣的朋友可以看一下我的基础课第21课。


    已有1评分我要评分查看所有评分

    最后编辑microgly 最后编辑于 2021-11-10 10:07:18
    本主题由 超级版主 瑞祥幽冥狼 于 2022/1/25 11:07:54 执行 忽略帖子 操作
    扫码免费获取我的基础教程【视频教程】
    扫码下方二维码关注我的公众号:3分钟学堂

    QQ交流群:936858410
    2#

    这个看起来真牛逼

    承接各类游戏脚本制作,post,手游,端游,办公,自动化

    有偿解决任何按键基础问题(可远程讲解、教会为止)

    如果我的回答能帮助了你,大家可以加个好友互相了解
    QQ : 262832680
    3#

    该用户帖子内容已被屏蔽

    4#

    学习受用

    5#

    郭老师真的牛

    6#

    学习了

    发新话题 回复该主题