Изменить чувствительность Сикули?

Я использую сикули некоторое время, однако у меня есть проблема с ним ... Он недостаточно чувствителен. Я пытаюсь сопоставить что-то на экране, что является -ТОЧНЫМ-, и на экране есть несколько других элементов, которые выглядят достаточно похожими, что сикули ошибочно принимает их за то, что я на самом деле ищу, поэтому мне нужно это сделать. ищите ТОЛЬКО этот пункт без каких-либо отклонений.

Как я могу это сделать?

Да, и чтобы немного объяснить мою проблему, я пишу цикл для игры, как только индикатор выполнения достигает 100% - он должен позволить циклу завершиться (и начать снова), однако индикатор выполнения - это просто простая полоса - поэтому, когда sikuli ищет ее на экране, она находит частично полную полосу (поскольку, по-видимому, она соответствует разным длинам/ширинам/размерам искомого изображения) и срабатывает.


person Jon    schedule 09.03.2010    source источник


Ответы (4)


Вы можете сделать следующее в Sikuli IDE:

  • Нажмите на изображение
  • В разделе «Настройки шаблона» > «Предварительный просмотр сопоставления» перетащите полосу сходства на 1,0 (до упора вправо).
  • Нажмите ОК
person Roy Tinker    schedule 07.10.2010

Если вы используете Sikuli IDE, щелкните миниатюру изображения, для которой вы хотите изменить чувствительность. Вам будет представлен скриншот вашего рабочего стола с вхождениями шаблона (ваше изображение). Ниже находится ползунок, который меняет чувствительность. Изменяя его, вы заметите, что выделенные вхождения шаблона соответственно увеличиваются или уменьшаются.
Этот метод предполагает, что ваша игра находится на экране (то есть в оконном режиме, а не в полноэкранном режиме), но даже если вы этого не сделаете, вы все равно можете настроить чувствительность, просто вы не увидите «живых» результатов поиска.

Если вы вызываете sikuli из кода Java, вы должны использовать Pattern(image.png).similar(y.xx)
, где аргумент simmilar находится между 0,00 и 1,00.
Я не использовал второй метод, поэтому вам, возможно, придется поэкспериментировать с ним.

person yoosiba    schedule 07.10.2010

Будет ли работать следующее?
Вы хотите, чтобы прогресс достиг 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():
person Surfdork    schedule 04.04.2011

Чтобы соответствовать точному изображению, я использую:

image1 = ("image1.png")
while not exists (Pattern(image1).exact()): 
       # Wait until that exact image appears. 
       wait(1) 
person Tenzin    schedule 14.08.2015