Author Topic: Расчет процента совпадения при поиске изображения  (Read 14323 times)

0 Members and 1 Guest are viewing this topic.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Расчет процента совпадения при поиске изображения

Чтобы не ставить процент совпадения наобум можно воспользоваться этим скриптом. После нахождения фрагмента в логе запишется процент на котором кликер нашел изображение и курсор переместится на это место.

Code: (clickermann) [Select]
// Настройки
$i = "Image.bmp" // Файл картинки
$c = 0           // Цветокоррекция от 0 выкл. до 8 макс
$t = -1          // Цвет прозрачности (-1 Отключено)

//==============================================================================
$proc = 100
GETSCREEN
COLORMODE($c)
WHILE(1)
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, $i, $t, $proc)
      IF($proc = 100)
         LOGWRITE ("Найдено")
         LOGWRITE ("Процент совпадения: ", $proc, "%")
         HINTPOPUP(STRCONCAT("Процент совпадения: ", $proc, "%"), "Найдено")
         move($_return1, $_return2)
         HALT
      ELSE
         INC($proc,1)
         HINTPOPUP(STRCONCAT("Процент совпадения: ", $proc, "%"), "Поиск...")
         $check = 1
      END_IF
   Else
      IF($check = 1)
         INC($proc,-1)
         LOGWRITE ("Найдено")
         LOGWRITE ("Процент совпадения: ", $proc, "%")
         HINTPOPUP(STRCONCAT("Процент совпадения: ", $proc, "%"), "Найдено")
         move($_return1, $_return2)
         HALT
      ELSE
         INC($proc,-5)
         HINTPOPUP(STRCONCAT("Процент совпадения: ", $proc, "%"), "Поиск...")
         IF($proc < 60)
            HINTPOPUP("Не нашел")
            HALT
         END_IF
      END_IF
   END_IF
END_CYC
« Last Edit: November 02, 2014, 10:18:46 PM by Oraven »

dmarsel

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Если кликер не находит изображение, то что это может значить?

aden

  • Оплот сообщества
  • ****
  • Posts: 363
    • View Profile
Если кликер не находит изображение, то что это может значить?

значит искомой картинки нет на экране

dmarsel

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Картинка точно есть. Я сделал скриншот и сразу запустил скрипт на процент совпадения. Скрипт картинку не нашел. Могло ли это быть из-за того что скрипт я запустил в оконном режиме?

aden

  • Оплот сообщества
  • ****
  • Posts: 363
    • View Profile
Картинка точно есть. Я сделал скриншот и сразу запустил скрипт на процент совпадения. Скрипт картинку не нашел. Могло ли это быть из-за того что скрипт я запустил в оконном режиме?
а вы уверены что картинка не изменилась ? картинка 1 в 1 совпадает с тем что находится на экране? искомая картинка находится в области поиска ? и процент совпадения указан верно?

dmarsel

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Code: [Select]
DEFINE($proc, 100)
 
GETSCREEN
IF_PICTURE_IN (0,0, 1300,700, "OK.bmp", -1, $proc)
   LOGWRITE ("Ïðîöåíò ñîâïàäåíèÿ: ", $proc)
   move($_return1, $_return2)
   HALT
Else
   INC($proc,-1)
   IF($proc < 60)
      HINTPOPUP("Íå íàøåë")
      HALT
   END_IF
   WAITMS(100)
END_IF


картинка статична. находится в области.

Quote
и процент совпадения указан верно?

Разве скрипт не должен искать этот процент?

aden

  • Оплот сообщества
  • ****
  • Posts: 363
    • View Profile
опишите как у вас скрипт работает

dmarsel

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Он не мой. Скрипт написал Oraven выше. А я только подставил граничные значения и картинку. Насколько я понимаю, скрипт ищет картинку постепенно понижая процент начаиная со 100%, если находит то говорит какой процент, если нет то выдает "не нашел".

Кстати где смотреть Лог? Кликер выводит сообщение "не нашел" справа-снизу.

aden

  • Оплот сообщества
  • ****
  • Posts: 363
    • View Profile
файл рядом с програмой должен создаватся
я о том как ведет себя скрипт при запуске конкретно у вас

dmarsel

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Quote
файл рядом с програмой должен создаватся
хм, а его нет.

Quote
я о том как ведет себя скрипт при запуске конкретно у вас
Он просто прогоняет себя 40 раз (от 100 до 60), после чего отключается и выдает "не нашел". Так и должно было бы быть, если бы картинки на экране не было.

Попробовал в неоконном режиме. Тоже не находит.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Quote
файл рядом с програмой должен создаватся
хм, а его нет.

И не будет его там... значек "блокнотик" тебе не очем не говорит? Или так сложно потыкать на кнопки?

Если не находит, значит либо графика сильно меняется либо ты картинку коряво сделал, либо кликер ничего не видит.

dmarsel

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
С логом ясно. Он должен создаваться, только когда что-то находит.

Quote
либо кликер ничего не видит

можно подробнее? почему он может не видеть и как это исправить?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
В редакторе включи лупу, именно так видит кликер. Если там темно то он ничего не видит. Обычно так бывает в некоторых случаях при привязке к окну.

Было бы куда проще еслиб ты сделал скриншот своего экрана в формате без потерь (PNG, BMP)  и приложил свою картинку. так хоть можно проверить находит или нет у других...

dmarsel

  • Освоившийся
  • **
  • Posts: 22
    • View Profile
Quote
В редакторе включи лупу, именно так видит кликер. Если там темно то он ничего не видит. Обычно так бывает в некоторых случаях при привязке к окну.

Было бы куда проще еслиб ты сделал скриншот своего экрана в формате без потерь (PNG, BMP)  и приложил свою картинку. так хоть можно проверить находит или нет у других...

Да, кликер не видит при привязке. Но без привязки поиск тоже не работает, хоть лупа и видит всё.

Вот скриншот и картинка

(скриншот на сайт не влез)

https://cloud.mail.ru/public/bb11618d9112/%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82.bmp

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Картинка точно есть. Я сделал скриншот и сразу запустил скрипт на процент совпадения. Скрипт картинку не нашел. Могло ли это быть из-за того что скрипт я запустил в оконном режиме?
Вот зачем? Ну скажи, ЗАЧЕМ ЗДЕСЬ оконный режим? Вот что за напасть такая. Картинку элементарную найти ещё не могут, зато оконный уже врубил. Я просто поражаюсь.
Скажи где вы все новички видите чтобы было написано "запустив кликер сразу включи оконный режим, нужно это или нет". Я на полном серьёзе хочу знать, где ты это взял.