標(biāo)題: 查包絡(luò)范圍程序源碼 [打印本頁]

作者: hujia    時(shí)間: 2015-2-18 01:25
標(biāo)題: 查包絡(luò)范圍程序源碼
//2010/05/06 tankli88 zt_script,sub 包絡(luò)范圍 
//在勻色背景中,查找顏色突出區(qū)域的包絡(luò)范圍
//調(diào)用插件從左向右,從上向下查找,查找相似度域值,得到包絡(luò)范圍的最小Y坐標(biāo).第一次查找,xqb為包絡(luò)范圍的最小X坐標(biāo),第二次xqb為包絡(luò)范圍的最大X坐標(biāo),第三次yqb為包絡(luò)范圍的最大Y坐標(biāo)
//查找方式,二分收斂
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.torrancerestoration.com/bbs/) Powered by Discuz! X3.1