2016. 2. 18.

멀티 이미지서치 함수 (동일한 이미지가 다수 존재할때 유용)

스크립트에 대한 설명:

동일한 이미지가 다수 존재하는 경우의 Imagesearch 함수입니다.
요새 질문으로 많이 올라오는 것 같아서...
알고리즘이 형편없어서 생각보다 시간이 많이 걸리는군요.
조금씩 손봐서 사용하셔야 될 듯 합니다;;;




^s::
SetBatchLines,-1
CoordMode,Pixel,Screen
CoordMode,ToolTip,Screen
result:=MultipleImagesearch(1,1,1024,768,"sample2.bmp")
Loop,Parse,result,`n
{
If A_LoopField=
Break
StringSplit,Pos,A_LoopField,a
ToolTip,%A_Index%,%Pos1%,%Pos2%,%A_Index%
}
return





MultipleImagesearch(xs,ys,xl,yl,image)
{
pos=
xss:=xs
yss:=ys
loop
{
Imagesearch,x,yi,%xss%,%yss%,%xl%,%yl%,%image%
If Errorlevel=1
Break
pos=%pos%%x%a%yi%`n
loop
{
xss:=x+1
If xss=%xl%
Break
Imagesearch,x,y,%xss%,%yss%,%xl%,%yl%,%image%
If Errorlevel=1
Break
pos=%pos%%x%a%y%`n
}
xss:=xs
yss:=yi+1
If yss=%yl%
Break
}
Sort,pos,u
return pos
}