我一直在使用sikuli,但是我有一个问题...它不够灵敏。我试图匹配屏幕上的东西-EXACT-,并且屏幕上还有一些其他项目看起来相似,以至于sikuli误将它们误认为是我实际需要的东西,所以我需要制作它只查找这个项目,没有任何差异。
我该怎么做?
哦,为了进一步解释我的问题,我正在为游戏编写循环,一旦进度条达到100% - 它需要允许循环完成(并重新开始),但是进度条只是一个简单的条形图 - 所以当sikuli在屏幕上查找它时,它会找到部分完整的条形图(因为它显然匹配它所寻找的图像的不同长度/宽度/尺寸)和触发器。
答案 0 :(得分:6)
您可以在Sikuli IDE中执行以下操作:
答案 1 :(得分:3)
如果您正在使用Sikuli IDE,请单击图像微缩,您要为其更改灵敏度。您将看到桌面的屏幕截图以及模式(您的图像)的出现。下面有一个滑块改变灵敏度。在更改它时,您会注意到模式的突出显示会相应地增加或减少 这种方法假定你的游戏在屏幕上(所以窗口模式,而不是全屏模式),但即使你没有,你仍然可以调整灵敏度,只是你不会看到搜索的“实时”结果。
如果从Java代码中调用sikuli,则必须使用Pattern(image.png).similar(y.xx)
其中simmilar的参数介于0.00和1.00之间
我没有使用第二种方法,所以你可能需要试验它。
答案 2 :(得分:0)
以下是否有效? 您正在寻找达到100%的进度然后再循环?
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():
答案 3 :(得分:0)
要匹配我使用的确切图像:
image1 = ("image1.png")
while not exists (Pattern(image1).exact()):
# Wait until that exact image appears.
wait(1)