Question

Je me sers Sikuli pendant un certain temps, mais j'ai un problème avec elle ... Ce n'est pas assez sensible. Je suis en train de faire correspondre quelque chose sur l'écran qui est -EXACT-, et il y a quelques autres éléments sur l'écran qui ressemblent assez similaire Sikuli est les confondant avec ce que je suis à la recherche pour, donc je dois faire chercher seulement cet article avec aucun écart du tout.

Comment puis-je faire?

Oh, et pour expliquer mon problème un peu plus loin, je suis en train d'écrire une boucle pour un jeu, une fois une barre de progression a atteint 100% - il doit permettre à la boucle pour terminer (et recommencer à nouveau), mais la barre de progression est juste un bar ordinaire -. alors, quand Sikuli le cherche à l'écran, il trouve la barre partiellement complète (puisque apparemment il correspond à différentes longueurs / largeurs / tailles de l'image qu'il cherche) et déclencheurs

Était-ce utile?

La solution

Vous pouvez faire ce qui suit dans l'Sikuli IDE:

  • Cliquez sur l'image
  • Dans Paramètres Pattern> Aperçu assortis, faites glisser la barre de similarité à 1,0 (tout le chemin à droite)
  • Cliquez sur OK

Autres conseils

Si vous utilisez l'image miniature Sikuli IDE cliquez, pour lequel vous voulez changer la sensibilité. Il vous sera présenté capture d'écran de votre bureau avec et les occurrences de motif (image). Ci-dessous, il y a une sorcière curseur sensibilité change. Tout en changeant, vous remarquerez que les événements mis en évidence de l'augmentation de motif ou diminuer en conséquence.
Cette méthode suppose que vous avez votre jeu à l'écran (donc en mode fenêtré, pas en plein écran), mais même si vous ne vous ne pouvez toujours pas régler la sensibilité, juste vous ne verrez pas les résultats « live » de la recherche.

Si vous appelez Sikuli à partir du code Java, vous devez utiliser Pattern(image.png).similar(y.xx)
où l'argument de simmilar est quelque chose entre 0,00 et 1,00.
Je ne l'ai pas utilisé deuxième méthode de sorte que vous devrez peut-être expérimenter avec.

Est-ce que les travaux suivants
Vous recherchez des progrès pour atteindre 100%, puis la boucle à nouveau?

  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():

Pour correspondre à une image exacte que j'utilise:

image1 = ("image1.png")
while not exists (Pattern(image1).exact()): 
       # Wait until that exact image appears. 
       wait(1) 
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top