我已经完成了我自己的循环,而Iam试图让它变得更快,更好......但有时在它重复搜索现有之后......它会随机按下(我认为它与我在sikuli中使用的任何img iam都不相似)放在屏幕上。也许你会知道为什么。
以下循环的一部分
while surowiec_1:
if exists("1451060448708.png", 1) or exists("1451061746632.png", 1):
foo = [w_lewo, w_prawo, w_dol, w_gore]
randomListElement = foo[random.randint(0,len(foo)-1)]
click(randomListElement)
wait(3)
else:
if exists("1450930340868.png", 1 ):
click(hemp)
wait(1)
hemp = exists("1450930340868.png", 1)
elif exists("1451086210167.png", 1):
click(tree)
wait(1)
tree = exists("1451086210167.png", 1)
elif exists("1451022614047.png", 1 ):
hover("1451022614047.png")
click(flower)
flower = exists("1451022614047.png", 1)
elif exists("1451021823366.png", 1 ):
click(fish)
fish = exists("1451021823366.png")
elif exists("1451022083851.png", 1 ):
click(bigfish)
bigfish = exists("1451022083851.png", 1)
else:
foo = [w_lewo, w_prawo, w_dol, w_gore]
randomListElement = foo[random.randint(0,len(foo)-1)]
click(randomListElement)
wait(3)
我想知道这只是img识别的程序问题还是我犯了错误。
答案 0 :(得分:1)
你调用两次exist
方法来获得相同的匹配(你的if
语句中的第一个匹配,第二次将它分配给值。你要求sikuli评估图像两次,它可以有不同的结果。
来自method's documentation
之后可以使用
Region.getLastMatch()
访问最佳匹配。