2010-03-09 9 views
5

He estado usando sikuli por un tiempo, sin embargo, tengo un problema ... No es lo suficientemente sensible. Estoy tratando de hacer coincidir algo en la pantalla que es -EXACT-, y hay algunos otros elementos en la pantalla que se ven lo suficientemente similares como para que sikuli los confunda con lo que realmente estoy buscando, así que tengo que hacerlo busque SOLAMENTE este artículo sin variaciones en absoluto.¿Cambiar la sensibilidad de Sikuli?

¿Cómo puedo hacer esto?

Ah, y para explicar mi problema un poco más, estoy escribiendo un ciclo para un juego, una vez que una barra de progreso ha alcanzado el 100% - necesita permitir que el ciclo termine (y comenzar de nuevo), sin embargo el progreso bar es simplemente una barra simple, por lo que sikuli lo busca en la pantalla, encuentra la barra parcialmente completa (ya que aparentemente coincide con diferentes longitudes/anchuras/tamaños de la imagen que está buscando) y desencadenadores.

Respuesta

6

Usted puede hacer lo siguiente en el IDE Sikuli:

  • Haga clic en la imagen
  • En ajustes del patrón> Coincidencia de vista previa, arrastre la barra de Similitud con 1.0 (todo el camino a la derecha)
  • Haga clic en Aceptar
3

Si está utilizando Sikuli IDE, haga clic en la miniatura de la imagen, para la que desea cambiar la sensibilidad. Se le mostrará una captura de pantalla de su escritorio con ocurrencias de patrón (su imagen). Debajo hay un control deslizante que cambia la sensibilidad. Al cambiarlo, notará que las ocurrencias resaltadas del patrón aumentan o disminuyen en consecuencia.
Este método asume que tienes tu juego en la pantalla (modo ventana, no pantalla completa), pero incluso si no puedes ajustar la sensibilidad, simplemente no verás los resultados de la búsqueda 'en vivo'.

Si llama Sikuli de código Java, se tienen que utilizar Pattern(image.png).similar(y.xx)
donde el argumento de simmilar es algo entre 0,00 y 1,00.
No he usado el segundo método, por lo que es posible que deba experimentar con él.

0

¿Funciona el siguiente trabajo?
¿Está buscando que el progreso llegue al 100% y luego al bucle otra vez?

f = open("C:\\test.htm",'W') 
    f.write('<font color="#347C2C">lOOPtEST</font><br />') 
    f.write('loop iteration' + (str (count)) + '<br />') 
    count = count + 1 
    f.close() 
COUNT =10 
POPUP("LOOPTEST") 

//image compare from progress bar 

import sikuli.Sikuli * 

WebPath =('Z:\\ZZZautomation\\Web\\') 

BuildPath = ("Z:\BUILDS\Daily_BUILDS\QA_MainBranch_Install\*.install") 
BuildNumber = glob.glob("Z:\BUILDS\Daily_BUILDS\QA_MainBranch_Install\*.install") 
for filename in BuildNumber: 
    SmokeTestInfo = "SmokeTest_Build " + filename[45:50] + " Iteration 44"+".htm" 
global Number 
Number = filename[45:50] 

global SmokeTest 
SmokeTest = SmokeTestInfo 

global count 
count = 0 

defMidProgress(): 
    while not exists ("//path to image of progress bar @ 50%//",FOREVER) 
    //or 
    wait("//path to image of progress bar @ 50%//", FOREVER) 
    //using forevEr means sikuli will checK FOR 50% PROGRESS FOREVER 
    //the bottom execures once the condition above is met 
    open(WebPath + SmokeTest,'w') 
    f.write('<font color="#0000FF">Progress is at 50%</font><br />') 
    f.close() 
    // writes entry to html log fie 

defFinalProgress(): 

    while not exists ("//path to image of progress bar @ 100%//",FOREVER) 
    //or 
    wait("//path to image of progress bar @ 100%//", FOREVER) 
    //using forever means sikuli will check FOR 100% PROGRESS FOREVER 
    //the bottom execures once the condition above is met 
    open(WebPath + SmokeTest,'a') 
    f.write('<font color="#0000FF">Progress is at 100%</font><br />') 
    f.close() 
    // writes entry to html log fie 


def Loop 
count =0 
def midProgress(): 

def FinalProgress(): 
0

para que coincida con una imagen exacta que utilizo:

image1 = ("image1.png") 
while not exists (Pattern(image1).exact()): 
     # Wait until that exact image appears. 
     wait(1) 
Cuestiones relacionadas