分享

【新提醒】第二季:区域找多图 坐标全记录!你到什么级别了?带源码

 淳爷们 2013-08-28
 本帖最后由 总代 于 2012-3-23 14:01 编辑

第二季 :区域找多图  这里解释一下有些朋友理解的错误  这里找多图 是同一图片在 指定范围内出现N次  并不是找多张图片!找多张不同图片插件里面有 我何必在写呢?
进入正题 第二季 适用于矩阵!比如:一个 背包格子 我们要知道哪些格子里面的物品是我们要的物品!然后把坐标记录下来!当然用处很多!自己摸索!
第二季图片示例

高级实例.jpg   矩阵 有的格子有  有的格子没有!

这里只是高级难度!大家可以自己思考下!这是我测试的结果 找到了.jpg

还剩下大师级难度!大师级难度适用于任何 指定范围的 同一图片 任何排列!这里先保密!

高级源码我隐藏下 大家顶吧!部分地方 没有修改1可以自己修改!  这个应该是首发吧!大家可以自己扩展思路和用法!等会加注释!

本帖隐藏的内容

hx=0:a=0:b=0:i=0:k=0:cs=0:ax=0:by=0:
for i=1 to 900/5
    FindPic 0,hy,1440,900,"E:\360data\重要数据\桌面\找到我1.bmp",1.0,intX,intY   
    If a = 0 and b = 0 Then
        Goto 哪里
    End If
    If intx <> a or inty <> b Then
        Call Plugin.File.WriteFileEx("E:\3.txt", a)
        Call Plugin.File.WriteFileEx("E:\3.txt", b)
    End If
    rem  哪里
    If intX >= 0 and intY >= 0 Then
        a = intx
        b = inty
        hy = hy + 5
    Else
        Exit For
    End If
Next
Text = Plugin.File.ReadFileEx("E:\3.txt")
zb = split(text, "|")
ds = UBound(zb)
dc =UBound(zb)/2
jj =zb(3)-zb(1)
Do While dc <> 0
    zb(0) = 0
    For K=1 to 1440/5
        ty = zb(1)
        FindPic zb(0),zb(1),1400,zb(1)+jj,"E:\360data\重要数据\桌面\找到我1.bmp",1,intX,intY  
        If ax = 0 and by = 0 Then
            Goto 这里
        End If
        If intx <> ax or inty <> by Then
            Call Plugin.File.WriteFileEx("E:\3.txt", ax & "," &zb(1))
        End If
        rem 这里
        If intX >= 0 and intY >= 0 Then
            ax = intx
            by = inty
            zb(0) = zb(0) + 5
        Else
            zb(1) = zb(1) + jj: dc = dc - 1:  ax = 0:by =0
            Exit for
        End If
    Next
loop
EndScrip










QQ截图20120320112448.jpg
初级找多图 记住每个点坐标 判断 个数

源码已经发了,见下面
思路解释:首先理解按键的找图原理 他是怎么找图的  我们会发现他是从上到下  从左到右 识别 这个就是依据了

就像我们在记事本打字一样  第一排打满了 回车打下一排 他的扫描顺序也是这样的(当然一些插件里面有多种模式供选择) 所以 我们会发现 用自带的找到得图 就是哪一个呢?我这里我不说了 ,你们自己测试 写脚本就是自己动手的过程!

当我们找到一个坐标 intX intY 我们就和上次的INTx和INTY比较  如果相等的话说明我们找到的点是重复的  那么我们就不记录这个点!
、继续 +上 N个象素 往下扫描 到一旦扫描不到图片 说明我们剩下的区域已经吗没有了 所以就 EXIT FOR  跳出循环



中级找多图 记住每个点坐标 判断个数
晚上  上次此图找法

最高难度.jpg
师级找多图 记住每个点坐标 判断个数  
这个图我就自己保留了!其实是第一图和第二图的组合  大家发挥吧! 呵呵!给大家留点自己发挥的空间!
XXX.jpg

经做成小精灵 随后起床上传 后面两个也做好了





你到什么级别了?要源码?帖子顶起来!!


源码 15行  最精简化了!我这个人喜欢精简!越短的脚本我越喜欢!
不隐藏了!晚上传矩阵识别, 比这个精彩 哦 、
注释:00000


这个保存的坐标 第一个是0.0 为了让脚本达到最简单化 一共 15行 我就没有把第一个去掉了
分割取数组的时候 从 (1)开始吧!

高级难度 测试通过了!准备整理上传!由于是区域找图 所以速度慢 测试记录 10个图 平均时间 4秒! 目前支持前台 后台稍微改下就OK了


hx=0:a=0:b=0:i=0:  //都是变量  md 是扫描图片密度  其实就是一个数字  图片散得很快的话用 15-10基本就可以全部扫描
//  MD 为1 时  只要是凌乱 没有任何图片在一条X轴上  那么就绝对能完全识别出来 但是不建议使用 1 因为速度会最慢 10秒左右
for i=1 to 900/md   这里 900/是 屏幕的 Y值 当然你可以用获取 屏幕高度和宽度的命令来智能实现,也可以 把值直接定义到 2000但是
FindPic 0,hx,1440,900,"E:\360data\重要数据\桌面\找到我.bmp",1.0,intX,intY   这个不解释了
↓下面的语句就要去理解变量了 这里我就不解释了
If intx <> a or inty <> b Then  
Call Plugin.File.WriteFileEx("E:\3.txt",a & "," & b)
End If
If intX >= 0 and intY >= 0 Then
a = intx
b = inty
hx = hx + md  
Else   
Exit For
End If
Next


高级难度.JPG (10.4 KB, 下载次数: 76)

高级难度.JPG




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多