Author Topic: массивы в scanpicture  (Read 2104 times)

0 Members and 3 Guests are viewing this topic.

redyard

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
массивы в scanpicture
« on: January 06, 2017, 07:15:32 AM »
Привет ребятки, постигаю азы Clickermannа по этому прошу сильно не пинать. может глупый вопрос,но, я всю долбаную ночь провел в поисках решения, так ничего и не добился. По сему пишу знающим
в общем дело такое: Имеем код,который ищет картинки и собирает в массив.

Code: [Select]
getscreen
scanpicture ($l, 0,0, $_xmax,$_ymax, "online.bmp")

while (arrsize($l) > 0)
  $y = arrpop($l)
  $x = arrpop($l)
 logwrite("x= ",$x," y= ",$y)
   end_cyc

halt

Все бы ничего,но он помимо нужного,хватает в массив и не нужное. И получается
7:01:30 x= 13 y= 597 //1 картинка
7:01:30 x= 259 y= 474  //2 картинка
7:01:30 x= 258 y= 474  //2 картинка
7:01:30 x= 259 y= 351 //3 картинка
7:01:30 x= 258 y= 351 //3 картинка
7:01:30 x= 13 y= 105  //4 картинка
7:01:30 x= 12 y= 105  //4 картинка
количество пикселей заданного цвета каждый раз разное от 95 до 100 примерно
Как решить этот трабл? подскажите пожалуйста.Уверен, где то на поверхности лежит ответ, но я чет хз :-\

« Last Edit: January 06, 2017, 07:36:41 AM by redyard »

redyard

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Re: массивы в scanpicture
« Reply #1 on: January 07, 2017, 04:03:38 AM »
Здравствуй мальчик!  :)
1. ненужного в массиве нет!!! ТАМ ТОЛЬКО ТО ЧТО ТЫ УКАЗАЛ ДЛЯ ПОИСКА!
  если тебе нужно, что то другое, то точнее вырезай картинку для поиска. например вырезать красный квадрат на прямоугольной кнопке и он может найтись на этой кнопке 800 раз каждый раз отступая от уже найденной картинки всего 1 пиксель и запоминая новые координаты, что и доказывает твой лог. Картинка для поиска должна быть уникальной, иметь характерный только для искомого объекта элемент!
2.  ... количество пикселей заданного цвета каждый раз разное от 95 до 100 примерно...
ЭТО НЕ ПИКСЕЛЫ КАКОГО-ТО ЦВЕТА!  это координаты левого верхнего угла найденной картинки совпадающей с образцом для поиска на  100%

Дружочек,ты не совсем меня правильно понял.
1 Штука в том,что картинку не вырезать точнее,она каждый раз уникальная,в зависимости авы юзернейма,т.к авы у всех разные, кол-во пикселей о которых я говорил (пикселькоунт) у всех розница в пределах 5 пикселей, стало быть,от этого дубли(если можно их так назвать) в массиве. пробовал округлить с помощью round но ничего не получилось)
2. ... ,все верно, вырезав не большой, но максимально возможный квадратик уникальных пискелей,все равно осталась погрешность +- в лево в право по пикселю,в зависимости от авы.  мне очень хочется этого избежать, что бы при нахождении подобного, он записывал в массив заданного юзера 1 координату по х и 1 координату по y.
Ффуух,вроде понятно написал)  :)

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: массивы в scanpicture
« Reply #2 on: January 07, 2017, 08:49:41 AM »
Пока не ясно зачем тебе вообще массив. IF_PICTURE_IN находит первую попавшуюся картинку, на этом и останавливается.

Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "online.bmp", -1, 100)
   LOGWRITE ("x= ",$_return1," y= ",$_return2)
   LCLICK($_return1, $_return2)
   WAITMS(100)
END_IF

HALT

redyard

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Re: массивы в scanpicture
« Reply #3 on: January 10, 2017, 04:05:27 AM »
он повторно будет по одной и той же кликать. мне нужно что бы на каждую обнаруженную кликал один раз

redyard

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Re: массивы в scanpicture
« Reply #4 on: January 10, 2017, 06:07:39 AM »
Да ну ее нафиг... Я манал... кто может написать скриптец? по цене решим)

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: массивы в scanpicture
« Reply #5 on: January 10, 2017, 08:05:26 AM »
Да ну ее нафиг... Я манал... кто может написать скриптец? по цене решим)
Что-то ты рано сдался. Почти не взявшись.
Пример скрипта теста ты привёл, это хорошо, а где скрины? где твоя online.bmp? (не сжатые)
Как можно на словах понять, почему там находит по 2 раза. Ты точно этим скриптом проверял? без всяких %?

Так по 2 и более раз может находить в трёх случаях:
1. низкий % совпадения позволяет.
2. особенности заготовки.
3. что-то на чёрном фоне или чёрное на вырезанном и т.п. (ошибка в 4.11-4.13b2) но нужно умудриться чтобы на неё напороться.

В любом случае, при платной помощи будут те же вопросы про скрины или доступ.


redyard

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Re: массивы в scanpicture
« Reply #6 on: January 10, 2017, 01:51:09 PM »
не совсем верно то,что я сдался. до сих пор ковыряю, решил пойти немного другим путем, но тоже есть свои траблы у этого.

в общем нужна личная консультация, из тех кто прям шарит шарит, с кем можно проконсультироваться?