下你所需,载你所想!
汇集开发技术源码资料

游戏自动截屏图片找字源码可制作脚本

:2.824MB :1 :2019-12-25 09:11:52

部分简介

识别思路
1、首先把图片转成BMP位图格式,位深度为8,刚好一个像素占一字节,因为位图的颜色数据是有序排列的字节集,我们可以通过<寻找字节集>命令快速定位到我们需要找的特征处。
处理特征,这里我们要识别的是“时”字,我就在PS把具有代表性的,相对清晰的“时”字截出来,看下图。。源码里有说明标注!!!

1.网上混了也有一段时间了,我在现实生活中的工作是在土建工程公司,平时基本在施工现场。没有多少时间码字。。。对于代码格式没有过多整理了。。大家将就看吧。。。嘻嘻。。
大学时学过C语言,现在基本忘记了,今天分享源码调用了模块,希望大家一起学习~进步。。不喜欢的大侠勿喷!
2.具体是哪款游戏不知,客户提供的截屏图片。。。
3.要求识别速度要快!
4.功能代码写好后联系客户一直未回复!

    .如果真 (列数 < 784 且 行数 < 488 且 行数 > 20)  ' 判断下是否越界
        构造方向 = 0  ' 这个只是要来判断是否找到相似特征的标记,初始下为0.
        .计次循环首 (4, 计次)
            起始位置 = (行数 + 计次) × 804 + 列数  ' 1 这个就是从第一步找到黑点的位置往上找3个像素,共4个点
            d1 = d1 + 取字节集中间 (大图颜色数据, 起始位置, 1)
        .计次循环尾 ()
        .如果真 (d1 = { 0, 0, 0, 0 })  ' 2 看上面找的这列是否都是黑色像素,“时”的第一笔画,满足就进入再寻找下步特征
            .计次循环首 (5, 计次)
                起始位置 = (行数 + 计次) × 804 + 列数 + 1
                d2 = d2 + 取字节集中间 (大图颜色数据, 起始位置, 1)
            .计次循环尾 ()
            .如果真 (d2 = { 255, 255, 255, 255, 255 })  ' 3判断是否是白色像素
                d2 = {  }
                .计次循环首 (6, 计次)
                    起始位置 = (行数 + 计次) × 804 + 列数 + 11
                    d2 = d2 + 取字节集中间 (大图颜色数据, 起始位置, 1)
                .计次循环尾 ()
                .如果真 (d2 = { 255, 255, 255, 255, 255, 255 })  ' 4判断是否是白色像素
                    d2 = {  }
                    起始位置 = (行数 + 4) × 804 + 列数 + 11
                    d2 = d2 + 取字节集中间 (大图颜色数据, 起始位置, 3)
                    .如果真 (d2 = { 255, 255, 255 })  ' 5判断是否是白色像素
                        d2 = {  }
                        起始位置 = (行数 + 3) × 804 + 列数 + 9
                        d2 = d2 + 取字节集中间 (大图颜色数据, 起始位置, 4)
                        .如果真 (d2 ≠ { 255, 255, 255, 255 })  ' 6判断是否是全黑色像素
                            构造方向 = -3  ' 以上六个特征都满足的话,很可能就是我们要找的位置了,
                        .如果真结束

                    .如果真结束

                .如果真结束

            .如果真结束

        .如果真结束

        .如果真 (构造方向 ≠ 0)
            调试输出 (“行+列”, 行数, 列数)
            s = 行数 + 构造方向
            构造字节集 = {  }
            .计次循环首 (12, )  ' PS截出来的样本高度是12像素
                起始位置 = s × 804 + 列数
                构造字节集 = 构造字节集 + 取字节集中间 (大图颜色数据, 起始位置, 16)  ' 宽度是16像素
                s = s + 1
            .计次循环尾 ()
            ' 根据上边6步的判断,我们用这个循环把图像数据取出来,用来和样本对比相似度!!
            连续赋值 (0, 相同个数, 不相同个数, 白色点个数, 黑色点个数)
            .计次循环首 (取字节集长度 (样本字节集), 计次)
                .判断开始 (样本字节集 [计次] = 0 且 构造字节集 [计次] = 0)
                    黑色点个数 = 黑色点个数 + 1
                .判断 (样本字节集 [计次] = 255 且 构造字节集 [计次] = 255)
                    白色点个数 = 白色点个数 + 1
                .判断 (样本字节集 [计次] = 250)  ' 样本中绿色的点跳过,不做比较

                .默认
                    不相同个数 = 不相同个数 + 1
                .判断结束

            .计次循环尾 ()
            计次 = 0
            相同个数 = 白色点个数 + 黑色点个数
            .如果真 (相同个数 > 80 且 白色点个数 > 20 且 黑色点个数 > 55)  ' 根据统计相同位置相同颜色的个数等 判断相似度
                调试输出 (“xbxt”, 相同个数, 不相同个数)
                坐标.横 = 列数
                坐标.纵 = 501 - 行数 + 3
                跳出循环 ()
            .如果真结束

        .如果真结束

    .如果真结束
    x = 寻找字节集 (大图颜色数据, { 0, 255 }, x + 2)  ' 上面所以得判断都不满足条件,那就继续寻找!!!
    处理事件 ()

游戏自动截屏图片找字源码可制作脚本

热门推荐

相关文章