Author Topic: поиск изображения ?  (Read 2695 times)

0 Members and 1 Guest are viewing this topic.

RaMzz

  • Зашел в гости
  • *
  • Posts: 12
    • View Profile
поиск изображения ?
« on: January 08, 2015, 03:41:09 AM »
У меня в папке много картинок сохранил с помощью скрипта Кликера....
теперь хочу чтоб анализировать изобажения появляющееся на экране, но как сделать так чтоб он в папке обошел все картинки и вернул с какой совпадает?
помогите пожалуйста

RaMzz

  • Зашел в гости
  • *
  • Posts: 12
    • View Profile
Re: поиск изображения ?
« Reply #1 on: January 08, 2015, 08:21:25 AM »
разобрался но не могу понять логики как сделать чтоб цикл останавливался на 51
пробовал и меньше и больше и равно
Code: [Select]
$pref_1="screens\L_Im_V_L"
$pref_2="screens\R_Im_V_L"

FOR($i=0, $i < 51, 1)
inc($i, 1)
print($i)

getscreen

IF_PICTURE_IN (240,236, 252, 256,STRCONCAT($pref_1,$i,".bmp"))

getscreen

IF_PICTURE_IN (270,236, 252, 256,STRCONCAT($pref_2,$i,".bmp"))
 
END_IF

END_CYC
и еще вопрос как понять что изображение найдено?
« Last Edit: January 08, 2015, 08:36:32 AM by RaMzz »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: поиск изображения ?
« Reply #2 on: January 08, 2015, 08:34:53 AM »
Картинки должны лежать в папке "screens" рядом со скриптом.
Файлы должны иметь такой вид
Image_0000.bmp
Image_0001.bmp
Image_0002.bmp и тд...

В скрипте нужно указать количество картинок в папке
Code: (clickermann) [Select]
$check = 0
$gen = 0
$Image_count = 0
$Image_count_s = 50 // количество картинок в папке screens
GETSCREEN
WHILE($check = 0)
   $len = STRLEN($gen)
   IF($len < 1)
      $gen2 = STRCONCAT ("0000", $gen)
   Else
      IF($len < 2)
         $gen2 = STRCONCAT ("000", $gen)
      Else
         IF($len < 3)
            $gen2 = STRCONCAT ("00", $gen)
         Else
            IF($len < 4)
               $gen2 = STRCONCAT ("0", $gen)
            Else
               $gen2 = $gen
            END_IF
         END_IF
      END_IF
   END_IF
   INC($gen,1)
   $num = $gen2
   
   INC($Image_count,1)
   IF($Image_count > $Image_count_s)
      $check = 1
      HINTPOPUP ("Не нашел")
      LOGWRITE ("Не нашел")
   ELSE
      IF_PICTURE_IN (500,500, 800,800, STRCONCAT("screens\Image_", $num,".bmp"), -1, 100)
         HINTPOPUP (STRCONCAT("Совпадение с Image_",$num,".bmp"))
         LOGWRITE ("Совпадение с Image_",$num,".bmp")
         halt
      END_IF
   END_IF
END_CYC

HALT
« Last Edit: January 08, 2015, 08:40:52 AM by Oraven »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: поиск изображения ?
« Reply #3 on: January 08, 2015, 08:37:40 AM »
Цикл FOR сам наращивает $i на то он и FOR. Не хватает одной END_IF

RaMzz

  • Зашел в гости
  • *
  • Posts: 12
    • View Profile
Re: поиск изображения ?
« Reply #4 on: January 08, 2015, 09:01:02 AM »
Цикл FOR сам наращивает $i на то он и FOR. Не хватает одной END_IF
ага я заметил

вот только каким образом уже на этом этапе вы узнаете нашел или не нашел

Code: (clickermann) [Select]
INC($Image_count,1)
   IF($Image_count > $Image_count_s)
      $check = 1
      HINTPOPUP ("Не нашел")
      LOGWRITE ("Не нашел")
[codeclickermann]

RaMzz

  • Зашел в гости
  • *
  • Posts: 12
    • View Profile
Re: поиск изображения ?
« Reply #5 on: January 08, 2015, 09:28:32 AM »
а вроде  понял
спасибо большое за пример

RaMzz

  • Зашел в гости
  • *
  • Posts: 12
    • View Profile
Re: поиск изображения ?
« Reply #6 on: January 08, 2015, 10:40:35 AM »
Да вот еще такой вопрос изображений  50+++ штук к примеру там всякие стрелы, луки, копья и т.д
вот скрипт находит изображения и как же дать ему понять что это лук к примеру а не копьё
Это  чтож делать стока переменых обозначающих каждое  изображения?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: поиск изображения ?
« Reply #7 on: January 08, 2015, 11:56:48 AM »
Да вот еще такой вопрос изображений  50+++ штук к примеру там всякие стрелы, луки, копья и т.д
вот скрипт находит изображения и как же дать ему понять что это лук к примеру а не копьё
Это  чтож делать стока переменных обозначающих каждое  изображения?

Не переменных а условий! Цикл нашел подходящую картинку и мы знаем её номер, например 0024

Code: (clickermann) [Select]
$num = "0024" // предположим в переменной у нас находится такая строка

$num = INT($num) // преобразуем строку в число (чтобы избежать возможных ошибок)

IF($num = 24)
   LOGWRITE ("Это лук")
END_IF

IF($num = 3)
   LOGWRITE ("Это меч")
END_IF

HALT

Да придется писать дохрена и более а что делать...