Author Topic: Анализ картинок  (Read 1256 times)

0 Members and 1 Guest are viewing this topic.

Viktor

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Анализ картинок
« on: January 30, 2020, 10:18:02 PM »
Здравствуйте.Кто нибуть сталкивался с распознанием такой капчи и как реализовать ее в кликер
Заранее спасибо!

Пробывал http://crapware.aidf.org/forum/index.php?topic=4714.msg32116#msg32116
Неполучается
« Last Edit: February 01, 2020, 05:03:41 PM by Viktor »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Анализ картинок
« Reply #1 on: February 01, 2020, 06:07:21 PM »
То что по ссылке, забудь лучше.

Вопрос задан поверхностно. Какую 'такую капчу'? Именно как на картинке? Тогда она решается за 5 минут на своих координатах.

Всё будет не так, если позиции не всегда одинаковы, число объектов разное, текст вдруг затребует не 1, а к примеру 2 не входящих в ряд.

Это нужно сразу всё озвучивать, чтоб потом десять раз не переделывать. Не подправлять чуток, а переделывать совсем, т.к. подход будет совсем другой.

А конкретно эта, если всё жестко, задаёшь 5 зон. Скринишь центр первой зоны с сохранением в файл. Его же ищешь в оставшейся области. Если больше нет - то клик по первому. Если найдены, то высчитывается в какую область не попадает, это она и есть.


Viktor

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Re: Анализ картинок
« Reply #2 on: February 05, 2020, 01:14:59 AM »
Спасибо за подсказку походу получилась
Code: (clickermann) [Select]
GETSCREEN
SCREENSHOTFIX ($1_x, $1_y, $1_x1, $1_y1, "1.bmp")


GETSCREEN //1
IF_PICTURE_IN ($1_x, $1_y, $1_x1, $1_y1, "1.bmp")
   LOGWRITE ("Одинаковая1")
   IF_PICTURE_IN ($2_x, $2_y, $2_x1, $2_y1, "1.bmp")
      LOGWRITE ("Одинаковая2")
      GETSCREEN
      IF_PICTURE_IN ($3_x, $3_y, $3_x1, $3_y1, "1.bmp")
         LOGWRITE ("Одинаковая3")
         GETSCREEN
         IF_PICTURE_IN ($4_x, $4_y, $4_x1, $4_y1,"1.bmp")
            LOGWRITE ("Одинаковая4")
            GETSCREEN
            IF_PICTURE_IN ($5_x, $5_y, $5_x1, $5_y1, "1.bmp")
            END_IF
            LOGWRITE ("Другая5")
            LOGWRITE ("Выход5")           
         ELSE
            LOGWRITE ("Другая4")
            GETSCREEN
            IF_PICTURE_IN ($5_x, $5_y, $5_x1, $5_y1, "1.bmp")
               LOGWRITE ("Одинаковая5")
            ELSE
            END_IF
            LOGWRITE ("Выход4")
         END_IF
      ELSE
         LOGWRITE ("Другая3")
         GETSCREEN
         IF_PICTURE_IN ($4_x, $4_y, $4_x1, $4_y1,"1.bmp")
            LOGWRITE ("Одинаковая4")
            GETSCREEN
            IF_PICTURE_IN ($5_x, $5_y, $5_x1, $5_y1, "1.bmp")
               LOGWRITE ("Одинаковая5")
            ELSE
            END_IF
            LOGWRITE ("Выход3")
         ELSE
            LOGWRITE ("Другая4")
            GETSCREEN
            IF_PICTURE_IN ($5_x, $5_y, $5_x1, $5_y1, "1.bmp")
               LOGWRITE ("Одинаковая5")
            ELSE
               LOGWRITE ("Другая5")
            END_IF
         END_IF
      END_IF
   ELSE
      LOGWRITE ("Другая2")
      GETSCREEN
      IF_PICTURE_IN ($3_x, $3_y, $3_x1, $3_y1, "1.bmp")
         LOGWRITE ("Одинаковая3")
         GETSCREEN
         IF_PICTURE_IN ($4_x, $4_y, $4_x1, $4_y1,"1.bmp")
            LOGWRITE ("Одинаковая4")
            GETSCREEN
            IF_PICTURE_IN ($5_x, $5_y, $5_x1, $5_y1, "1.bmp")
               LOGWRITE ("Одинаковая5")
            ELSE               
            END_IF
            LOGWRITE ("Выход2")
         ELSE
            LOGWRITE ("Другая4")
            GETSCREEN
            IF_PICTURE_IN ($5_x, $5_y, $5_x1, $5_y1, "1.bmp")
               LOGWRITE ("Одинаковая5")
            ELSE
               LOGWRITE ("Другая5")
            END_IF
         END_IF
      ELSE
         LOGWRITE ("Другая3")
         GETSCREEN
         IF_PICTURE_IN ($4_x, $4_y, $4_x1, $4_y1,"1.bmp")
            LOGWRITE ("Одинаковая4")
            GETSCREEN
            IF_PICTURE_IN ($5_x, $5_y, $5_x1, $5_y1, "1.bmp")
               LOGWRITE ("Одинаковая5")
            ELSE
            END_IF
            LOGWRITE ("Выход3")
         ELSE
            LOGWRITE ("Другая4")
            GETSCREEN
            IF_PICTURE_IN ($5_x, $5_y, $5_x1, $5_y1, "1.bmp")
               LOGWRITE ("Одинаковая5")
            ELSE
               LOGWRITE ("Другая5")
            END_IF
            LOGWRITE ("Выход1")
         END_IF
      END_IF
   END_IF
ELSE
   
END_IF

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Анализ картинок
« Reply #3 on: February 05, 2020, 07:40:51 AM »
Спасибо за подсказку походу получилась
Code: (clickermann) [Select]
GETSCREEN
SCREENSHOTFIX ($1_x, $1_y, $1_x1, $1_y1, "1.bmp")


GETSCREEN //1
IF_PICTURE_IN ($1_x, $1_y, $1_x1, $1_y1, "1.bmp")
   LOGWRITE ("Одинаковая1")
   IF_PICTURE_IN ($2_x, $2_y, $2_x1, $2_y1, "1.bmp")
      LOGWRITE ("Одинаковая2")
      GETSCREEN
      IF_PICTURE_IN ($3_x, $3_y, $3_x1, $3_y1, "1.bmp")
         LOGWRITE ("Одинаковая3")
         GETSCREEN
         IF_PICTURE_IN ($4_x, $4_y, $4_x1, $4_y1,"1.bmp")
            LOGWRITE ("Одинаковая4")
            GETSCREEN
            IF_PICTURE_IN ($5_x, $5_y, $5_x1, $5_y1, "1.bmp")
            END_IF
            LOGWRITE ("Другая5")
            LOGWRITE ("Выход5")           
         ELSE
            LOGWRITE ("Другая4")
            GETSCREEN
            IF_PICTURE_IN ($5_x, $5_y, $5_x1, $5_y1, "1.bmp")
               LOGWRITE ("Одинаковая5")
            ELSE
            END_IF
            LOGWRITE ("Выход4")
         END_IF
      ELSE
         LOGWRITE ("Другая3")
         GETSCREEN
         IF_PICTURE_IN ($4_x, $4_y, $4_x1, $4_y1,"1.bmp")
            LOGWRITE ("Одинаковая4")
            GETSCREEN
            IF_PICTURE_IN ($5_x, $5_y, $5_x1, $5_y1, "1.bmp")
               LOGWRITE ("Одинаковая5")
            ELSE
            END_IF
            LOGWRITE ("Выход3")
         ELSE
            LOGWRITE ("Другая4")
            GETSCREEN
            IF_PICTURE_IN ($5_x, $5_y, $5_x1, $5_y1, "1.bmp")
               LOGWRITE ("Одинаковая5")
            ELSE
               LOGWRITE ("Другая5")
            END_IF
         END_IF
      END_IF
   ELSE
      LOGWRITE ("Другая2")
      GETSCREEN
      IF_PICTURE_IN ($3_x, $3_y, $3_x1, $3_y1, "1.bmp")
         LOGWRITE ("Одинаковая3")
         GETSCREEN
         IF_PICTURE_IN ($4_x, $4_y, $4_x1, $4_y1,"1.bmp")
            LOGWRITE ("Одинаковая4")
            GETSCREEN
            IF_PICTURE_IN ($5_x, $5_y, $5_x1, $5_y1, "1.bmp")
               LOGWRITE ("Одинаковая5")
            ELSE               
            END_IF
            LOGWRITE ("Выход2")
         ELSE
            LOGWRITE ("Другая4")
            GETSCREEN
            IF_PICTURE_IN ($5_x, $5_y, $5_x1, $5_y1, "1.bmp")
               LOGWRITE ("Одинаковая5")
            ELSE
               LOGWRITE ("Другая5")
            END_IF
         END_IF
      ELSE
         LOGWRITE ("Другая3")
         GETSCREEN
         IF_PICTURE_IN ($4_x, $4_y, $4_x1, $4_y1,"1.bmp")
            LOGWRITE ("Одинаковая4")
            GETSCREEN
            IF_PICTURE_IN ($5_x, $5_y, $5_x1, $5_y1, "1.bmp")
               LOGWRITE ("Одинаковая5")
            ELSE
            END_IF
            LOGWRITE ("Выход3")
         ELSE
            LOGWRITE ("Другая4")
            GETSCREEN
            IF_PICTURE_IN ($5_x, $5_y, $5_x1, $5_y1, "1.bmp")
               LOGWRITE ("Одинаковая5")
            ELSE
               LOGWRITE ("Другая5")
            END_IF
            LOGWRITE ("Выход1")
         END_IF
      END_IF
   END_IF
ELSE
   
END_IF

А зачем столько GETSCREEN...? В первой строке одного не хватит...?
Я не ду... Потому и не бу...