A sensibilidade de mudança Sikuli?
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
.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)