Pergunta

Estou usando o Sikuli por algum tempo, no entanto eu tenho um problema com ele ... Não é suficiente sensível. Eu estou tentando combinar algo na tela que é -EXACT-, e há alguns outros itens na tela que se parecem bastante similar que Sikuli está confundindo-as com o que eu estou realmente procurando, então eu preciso para torná-lo olhar para SOMENTE este item sem variações em tudo.

Como posso fazer isso?

Oh e explicar o meu problema um pouco mais, eu estou escrevendo um loop para um jogo, uma vez que uma barra de progresso atingir 100% - ele precisa para permitir que o loop ao fim (E começar tudo de novo), no entanto a barra de progresso é apenas um bar simples - então quando olhares Sikuli para ele na tela, ele encontra o bar parcialmente completo (Desde aparentemente ele combina diferentes comprimentos / larguras / tamanhos de imagem que está procurando), e triggers

.
Foi útil?

Solução

Você pode fazer o seguinte no Sikuli IDE:

  • Clique na imagem
  • Em Configurações padrão> Combinando Preview, arrastar a barra de Similaridade a 1,0 (todo o caminho para a direita)
  • Clique em OK

Outras dicas

Se você estiver usando Sikuli IDE miniatura clique na imagem, para o qual você deseja alterar a sensibilidade. Você será apresentado screenshot do seu desktop com e ocorrências de padrão (a imagem). Abaixo há um controle deslizante bruxa muda sensibilidade. Enquanto mudá-lo você vai notar que as ocorrências destacadas do aumento padrão ou diminuir em conformidade.
Este método pressupõe que você tenha o seu jogo na tela (modo tão janelas, não fullscreen), mas mesmo se você não você ainda pode ajustar a sensibilidade, assim você não vai ver os resultados 'ao vivo' de pesquisa.

Se você chamar Sikuli a partir do código Java, você tem que usar Pattern(image.png).similar(y.xx)
onde o argumento de simmilar é algo entre 0,00 e 1,00.
Eu não usei segundo método para que você pode precisar experimentar com ele.

Será que o trabalho seguinte?
Você está procurando o progresso chegar a 100%, em seguida, loop de novo?

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

Para corresponder a um uso exato imagem I:

image1 = ("image1.png")
while not exists (Pattern(image1).exact()): 
       # Wait until that exact image appears. 
       wait(1) 
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top