Author Topic: Поиск строки из скриншота  (Read 9031 times)

0 Members and 3 Guests are viewing this topic.

Dampil

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
    • @pump_upp - best crypto pumps on telegram !
Поиск строки из скриншота
« on: March 16, 2016, 08:14:49 PM »
Доброго времени суток! Проблемка небольшая возникла при попытке написания "бота" для браузерки glory-wars.net. Имеется необходимость оценки числового параметра в окне. В принципе, можно делать скриншот и оценивать картинки, но диапазон интересующих чисел от 0 до 16, соответственно код начинает попахивать индуизмом и лишними if. Вот и возник вопрос, есть ли возможность из окна выцепить число напрямую. Пока писАл, появились мысли насчёт проверки по картинке... Просьба всё-таки ответить, если указанная выше возможность существует
« Last Edit: March 16, 2016, 08:49:28 PM by Dampil »

quant13

  • Активный участник
  • ***
  • Posts: 174
    • View Profile
Re: Поиск строки из скриншота
« Reply #1 on: March 16, 2016, 09:26:29 PM »
http://crapware.aidf.org/forum/index.php?topic=33.msg8320#msg8320

Кнопку "Поиск" с форумов можно удалять. Она больше никому нафиг не нужна.

Dampil

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
    • @pump_upp - best crypto pumps on telegram !
Re: Поиск строки из скриншота
« Reply #2 on: March 16, 2016, 09:58:46 PM »
http://crapware.aidf.org/forum/index.php?topic=33.msg8320#msg8320

Кнопку "Поиск" с форумов можно удалять. Она больше никому нафиг не нужна.

И тебе привет и спасибо за конструктивную, пусть и несколько негативно эмоционально окрашенную критику. Прошу прощения, в силу обстоятельств субъективного характера не смог придумать поисковый запрос

Dampil

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
    • @pump_upp - best crypto pumps on telegram !
Re: Поиск строки из скриншота
« Reply #3 on: March 16, 2016, 11:16:13 PM »
Kirill, там всё проще: тупо счётчик, согласно которому можно сделать за день N одних действий и M других. Прозрачность и иные "извращения" отсутствуют.
Вид строки примерно:
"Баллов первого вида: N+#10#13+Баллов второго вида: M"
Если и того и другого по нулям, то ставим перса работать.
Сорь за некоторое косноязычие описания строки, учился "Объектному дяде Боре" да и то давно. Подумываю над вариантом проверки равенства N и M нулю по картинке, что сразу отрежет почти весь диапазон, указанный выше
« Last Edit: March 16, 2016, 11:26:31 PM by Dampil »

Dampil

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
    • @pump_upp - best crypto pumps on telegram !
Re: Поиск строки из скриншота
« Reply #4 on: March 17, 2016, 12:05:03 AM »
Всем спс за поддержку. Криво-косо, но уже работает. Если кому нужен скрипт, к понедельнику(скорей всего) выкину сюда

Dampil

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
    • @pump_upp - best crypto pumps on telegram !
Re: Поиск строки из скриншота
« Reply #5 on: March 19, 2016, 10:34:43 PM »
то ли лыжи не едут, то ли смазаны плохо...
Сегодня скрипт перестал работать от слова "совсем". Кто-нить сталкивался с таким? Сам скрин и "поисковые" файлы выложил, сделаны в одном окне, при одинаковом разрешении.
Code: (clickermann) [Select]
getscreen
if_picture_in(300,629, 513,661,"1.bmp")
остальной код не выкладываю, сбой в самом начале идёт:(
« Last Edit: March 19, 2016, 10:36:47 PM by Dampil »

Dampil

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
    • @pump_upp - best crypto pumps on telegram !
Re: Поиск строки из скриншота
« Reply #6 on: March 20, 2016, 04:47:23 PM »
насчёт изменения - не совсем понял. Просто пробовал без цветокоррекции делать со свежего скрина "вырезку", эффекта ноль. Или имелось в виду, что меняется цветовое наполнение фрагмента при перезагрузке страницы? то бишь, часть экрана заливается цветом, на глаз неотличимым от чёрного(например), но с некоторыми отклонениями по "составляющим" цвета?
с применением цветокоррекции( рекомендую COLORMODE(6)) сохраняете и ищите новые.
если правильно понял, то что-то типа
Code: (clickermann) [Select]
getscreen
colormode(6)
screenshotex(по интересующим координатам)
для сохранения "образца"?

Dampil

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
    • @pump_upp - best crypto pumps on telegram !
Re: Поиск строки из скриншота
« Reply #7 on: March 20, 2016, 05:27:25 PM »
кстати, закономерный вопрос. В одной из тем писАлось, что if_picture_in - вполне себе процедура. При этом в хелпе напрямую указано, что это тот же if. Так всё же, условие или процедура?

Dampil

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
    • @pump_upp - best crypto pumps on telegram !
Re: Поиск строки из скриншота
« Reply #8 on: March 20, 2016, 05:34:57 PM »
Code: (clickermann) [Select]
getscreen
colormode(6)
if_picture_in(268,690,424,716,"shot0001.bmp")
//   beep(100,1000) использовал для проверки выполнения условия
   if_picture_in(270,650,426,678,"shot0000.bmp")
      move(230,241)
      wait(3)
      LCLICK(230,241)  // город
      wait(3)
      move(283,289)
      wait(3)
      LCLICK(283,289)  // работа
      wait(3)
      move(833,620)
      wait(3)
      LCLICK(833,620)  // встаём на час
      wait(3590)
      move(956,194)
      wait(3)
      LCLICK(956,194)  // идём за голдой
      wait(3)
      move(759,626)
      wait(3)
      LCLICK(759,626)  // берём голду
   end_if   
end_if
мб, где-то в коде накосячил? Хотя, сомневаюсь, без условий кликает, аж за ушами трещит
"образцы" сняты тоже при колормод 6, размер "окна поиска" больше искомого изображения.

Кликермен

  • Активный участник
  • ***
  • Posts: 112
    • View Profile
Re: Поиск строки из скриншота
« Reply #9 on: March 20, 2016, 06:36:39 PM »
Code: (clickermann) [Select]
getscreen
colormode(6)
if_picture_in(268,690,424,716,"shot0001.bmp", -1, 100)
//   beep(100,1000) использовал для проверки выполнения условия
   if_picture_in(270,650,426,678,"shot0000.bmp", -1, 100)
      move(230,241)
      wait(3)
      LCLICK(230,241)  // город
      wait(3)
      move(283,289)
      wait(3)
      LCLICK(283,289)  // работа
      wait(3)
      move(833,620)
      wait(3)
      LCLICK(833,620)  // встаём на час
      wait(3590)
      move(956,194)
      wait(3)
      LCLICK(956,194)  // идём за голдой
      wait(3)
      move(759,626)
      wait(3)
      LCLICK(759,626)  // берём голду
   end_if   
end_if
 

поколдуи если что над процентом соответствия, снизь 100, но менее, чем 70%

Dampil

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
    • @pump_upp - best crypto pumps on telegram !
Re: Поиск строки из скриншота
« Reply #10 on: March 20, 2016, 07:13:35 PM »
Всем спс за советы. Мешал бот для WoW под названием WRobot(мог бы и догадаться, он и Punto Switchery портит работу, такое чуйство, что с буфером активно работает. Не уверен на все 100, ибо строение системы помню только в плане вытесняющей многозадачности) и/или долгое невыключение компа. Заработало, блин. Следствие второго закона Чизхольма в действии ;D Жаль, плюсомёт в форум не встроен, всем бы выразил "спс" за терпимость к моим завываниям.. Как и обещал, код выложу как только "докручу". Пока только устраивается на работу, если все "баллы" закончились.

Кстати, появилась непонятка: scanpicture выдавал массив на полторы тысячи элементов... Эт как? Если правильно понимаю, он должен выдавать координаты нахождения искомого изображения или я не правильно понимаю?
« Last Edit: March 20, 2016, 09:27:43 PM by Dampil »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Поиск строки из скриншота
« Reply #11 on: March 21, 2016, 09:01:29 AM »
кстати, закономерный вопрос. В одной из тем писАлось, что if_picture_in - вполне себе процедура. При этом в хелпе напрямую указано, что это тот же if. Так всё же, условие или процедура?
Это гибрид.

Кстати, появилась непонятка: scanpicture выдавал массив на полторы тысячи элементов... Эт как? Если правильно понимаю, он должен выдавать координаты нахождения искомого изображения или я не правильно понимаю?
Значит нашлось полторы тысячи совпадений с образцом.


dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Поиск строки из скриншота
« Reply #12 on: March 21, 2016, 09:51:41 AM »
Кстати, появилась непонятка: scanpicture выдавал массив на полторы тысячи элементов... Эт как? Если правильно понимаю, он должен выдавать координаты нахождения искомого изображения или я не правильно понимаю?
вероятно массив набрал 1000 элементов не за одно выполнение scanpicture. дело в том, что перед выполнением scanpicture, массив не обнуляется, и все найденные координаты искомой картинки добавляются в конец массива.

Dampil

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
    • @pump_upp - best crypto pumps on telegram !
Re: Поиск строки из скриншота
« Reply #13 on: March 21, 2016, 06:01:19 PM »
если не обнулять массив, то результаты суммируются. К примеру координаты разных картинок могут сливаться в один массив или поиск одной картинки в цикле по времени, тоже за продолжительное время насканирует 1500 координат- это 750 раз найдена картинка.
при этом, с учётом того, что массив не инициализировался, за один проход получилось случайное число+2 координаты от найденной картинки. Так?

Кликермен

  • Активный участник
  • ***
  • Posts: 112
    • View Profile
Re: Поиск строки из скриншота
« Reply #14 on: March 21, 2016, 06:16:11 PM »
Quote
за один проход получилось случайное число+2 координаты от найденной картинки. Так?

за один проход получаем массив  из 2 элементов, координат х, у, твоеи картинки.  и все.   перед   scanpxl очищаи массив через undefine/ никаких случаиных чисел у тебя там быть не может