Автор Тема: Расчет процента совпадения при поиске изображения  (Прочитано 9834 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Oraven

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

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

Код: Clickermann
  1. // Настройки
  2. $i = "Image.bmp" // Файл картинки
  3. $c = 0           // Цветокоррекция от 0 выкл. до 8 макс
  4. $t = -1          // Цвет прозрачности (-1 Отключено)
  5.  
  6. //==============================================================================
  7. $proc = 100
  8. GETSCREEN
  9. COLORMODE($c)
  10. WHILE(1)
  11.   IF_PICTURE_IN (0,0, $_xmax,$_ymax, $i, $t, $proc)
  12.      IF($proc = 100)
  13.         LOGWRITE ("Найдено")
  14.         LOGWRITE ("Процент совпадения: ", $proc, "%")
  15.         HINTPOPUP(STRCONCAT("Процент совпадения: ", $proc, "%"), "Найдено")
  16.         move($_return1, $_return2)
  17.         HALT
  18.      ELSE
  19.         INC($proc,1)
  20.         HINTPOPUP(STRCONCAT("Процент совпадения: ", $proc, "%"), "Поиск...")
  21.         $check = 1
  22.      END_IF
  23.   Else
  24.      IF($check = 1)
  25.         INC($proc,-1)
  26.         LOGWRITE ("Найдено")
  27.         LOGWRITE ("Процент совпадения: ", $proc, "%")
  28.         HINTPOPUP(STRCONCAT("Процент совпадения: ", $proc, "%"), "Найдено")
  29.         move($_return1, $_return2)
  30.         HALT
  31.      ELSE
  32.         INC($proc,-5)
  33.         HINTPOPUP(STRCONCAT("Процент совпадения: ", $proc, "%"), "Поиск...")
  34.         IF($proc < 60)
  35.            HINTPOPUP("Не нашел")
  36.            HALT
  37.         END_IF
  38.      END_IF
  39.   END_IF
  40. END_CYC
  41.  
« Последнее редактирование: Ноябрь 02, 2014, 10:18:46 pm от Oraven »

dmarsel

  • Освоившийся
  • **
  • Сообщений: 22
    • Просмотр профиля
Если кликер не находит изображение, то что это может значить?

aden

  • Оплот сообщества
  • ****
  • Сообщений: 363
    • Просмотр профиля
Если кликер не находит изображение, то что это может значить?

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

dmarsel

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

aden

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

dmarsel

  • Освоившийся
  • **
  • Сообщений: 22
    • Просмотр профиля
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


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

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

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

aden

  • Оплот сообщества
  • ****
  • Сообщений: 363
    • Просмотр профиля
опишите как у вас скрипт работает

dmarsel

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

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

aden

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

dmarsel

  • Освоившийся
  • **
  • Сообщений: 22
    • Просмотр профиля
Цитировать
файл рядом с програмой должен создаватся
хм, а его нет.

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

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

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3685
  • Котэ
    • Просмотр профиля
Цитировать
файл рядом с програмой должен создаватся
хм, а его нет.

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

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

dmarsel

  • Освоившийся
  • **
  • Сообщений: 22
    • Просмотр профиля
С логом ясно. Он должен создаваться, только когда что-то находит.

Цитировать
либо кликер ничего не видит

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

Oraven

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

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

dmarsel

  • Освоившийся
  • **
  • Сообщений: 22
    • Просмотр профиля
Цитировать
В редакторе включи лупу, именно так видит кликер. Если там темно то он ничего не видит. Обычно так бывает в некоторых случаях при привязке к окну.

Было бы куда проще еслиб ты сделал скриншот своего экрана в формате без потерь (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

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