找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3074|回复: 0
打印 上一主题 下一主题
收起左侧

查包络范围程序源码

[复制链接]
跳转到指定楼层
楼主
ID:26188 发表于 2015-2-18 01:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//2010/05/06 tankli88 zt_script,sub 包络范围 
//在匀色背景中,查找颜色突出区域的包络范围
//调用插件从左向右,从上向下查找,查找相似度域值,得到包络范围的最小Y坐标.第一次查找,xqb为包络范围的最小X坐标,第二次xqb为包络范围的最大X坐标,第三次yqb为包络范围的最大Y坐标
//查找方式,二分收敛
xq = 186 : yq = 130 : xz = 432 : yz = 147
VBSCall FindColorEx(xq,yq,xz,yz,'ffffff',0,.8,x,y)
If x > 0 and y > 0
    xb = x : yqc = y : xqb = xq : xzb = xqb + (x - xqb)\2 :
    While (xb-xqb) > 1
        VBSCall FindColorEx(xqb,yqc,xzb,yz,'ffffff',0,.8,x,y)
        If x > 0 and y > 0
            xb = x : xzb = xqb + (x - xqb)\2
        Else
            xqb = xzb : xzb = xqb + (xb - xqb)\2
        EndIf
    EndWhile
    xqc = xqb + 1 :  xzb = xz : xqb = xqc + (xzb - xqc)\2
    While (xzb-xqb) > 1
        VBSCall FindColorEx(xqb,yqc,xzb,yz,'ffffff',0,.8,x,y)
        If x > 0 and y > 0
            xqb = x + (xzb - x)\2
        Else
            xzb = xqb : xqb = xzb - (xzb - xqc)\2
        EndIf
    EndWhile
    xzc = xqb + 1 : yzb = yz : yqb = yqc + (yzb - yqc)\2
    While (yzb-yqb) > 1
        VBSCall FindColorEx(xqc,yqb,xzc,yzb,'ffffff',0,.8,x,y)
        If x > 0 and y > 0
            yqb = y + (yzb - y)\2
        Else
            yzb = yqb : yqb = yzb - (yzb - yqc)\2
        EndIf
    EndWhile
    yzc = yqb + 1
    //msgbox xqc&' '&yqc&' '&xzc
    Plugin Pic.PrintScreen(xqc, yqc,xzc, yzc, 'C:\PIC.bmp')
    VBSCall RunApp('C:\PIC.bmp')
EndIf


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表