标题: 查包络范围程序源码 [打印本页]

作者: hujia    时间: 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







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1