//2010/05/06 tankli88 zt_script,sub 包絡范圍
//在勻色背景中,查找顏色突出區(qū)域的包絡范圍
//調(diào)用插件從左向右,從上向下查找,查找相似度域值,得到包絡范圍的最小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
|