Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: 3333333333 on November 24, 2016, 06:59:53 PM

Title: Синхронизация последовательности потока
Post by: 3333333333 on November 24, 2016, 06:59:53 PM
"родительский и все дочерние потоки имеют общий доступ к графическому буферу и переменным"
Ищем картинки в потоках, в результате получаем ошибки интерпритации win 10 x64 или vm xp sp3 находит одну и туже либо что-то среднее,
версия
CM4.12.001
[spoiler]
Code: (clickermann) [Select]
GETSCREEN
THREAD(thr_name1)
   // тело потока
LOGWRITE ("Сообщение1")

 

SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "PIC1.bmp", -1, 100)

$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
   $X = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $Y = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   MOVE($X, $Y)   // перемещаем курсор
   LOGWRITE ("P1X: ", $X, " Y: ", $Y)
   WAITMS(100)
END_CYC
UNDEFINE($ARR_SCAN)

HALT

   waitms(10) // задержка для разгрузки CPU
END_THREAD
// поток
THREAD(thr_name)
   // тело потока
LOGWRITE ("Сообщение2")

 


SCANPICTURE($ARR_SCAN1, 0,0, $_xmax,$_ymax, "PIC2.bmp", -1, 100)

$ARR_NUM1 = 0
WHILE ($ARR_NUM1 < ARRSIZE($ARR_SCAN1))
   $X = $ARR_SCAN1 [$ARR_NUM1]
   INC($ARR_NUM1,1)
   $Y = $ARR_SCAN1 [$ARR_NUM1]
   INC($ARR_NUM1,1)
   MOVE($X1, $Y1)   // перемещаем курсор
   LOGWRITE ("P2 X1: ", $X1, " Y1: ", $Y1)
   WAITMS(100)
END_CYC
UNDEFINE($ARR_SCAN1)

HALT

   waitms(10) // задержка для разгрузки CPU
END_THREAD
[/spoiler]
Title: Re: Синхронизация последовательности потока
Post by: dramster on November 24, 2016, 07:06:34 PM
Quote
"родительский и все дочерние потоки имеют общий доступ к графическому буферу и переменным"
так оно и есть. у тебя координаты обеих картинок пишутся в один массив $ARR_SCAN одновременно,. отсюда и непойми что на выходе.

в добавок к этому еще и наращиваемая переменная $ARR_NUM наращивается одновременно. вернее не одновременно, а поочереди, то в одном потоке, то во втором.

в добавок к этому, еще и переменные х и у в потоках одни и теже.

да и вообще, из массива с координатами проще читать так:


Code: (clickermann) [Select]
FOR($a=0,$a<ARRSIZE($ARR_SCAN),2)
   $X = $ARR_SCAN [$a]
   $Y = $ARR_SCAN [$a+1]
END_CYC
Title: Re: Синхронизация последовательности потока
Post by: 3333333333 on November 25, 2016, 10:39:06 AM
Я так и предполагал, спасибо за ответ будем двигаться в правильном направлении :)
Title: Re: Синхронизация последовательности потока
Post by: 3333333333 on November 26, 2016, 01:58:43 PM
Quote
"родительский и все дочерние потоки имеют общий доступ к графическому буферу и переменным"
так оно и есть. у тебя координаты обеих картинок пишутся в один массив $ARR_SCAN одновременно,. отсюда и непойми что на выходе.

в добавок к этому еще и наращиваемая переменная $ARR_NUM наращивается одновременно. вернее не одновременно, а поочереди, то в одном потоке, то во втором.

в добавок к этому, еще и переменные х и у в потоках одни и теже.

да и вообще, из массива с координатами проще читать так:


Code: (clickermann) [Select]
FOR($a=0,$a<ARRSIZE($ARR_SCAN),2)
   $X = $ARR_SCAN [$a]
   $Y = $ARR_SCAN [$a+1]
END_CYC
Уважаемый, подскажите пожалуйста функция bgcolor какую градацию имеет кроме (-1), это к какому фону изображения относится?
Title: Re: Синхронизация последовательности потока
Post by: Oraven on November 26, 2016, 02:50:21 PM
В подготавливаемом фрагменте нужно закрасить, каким то цветом, то что должно считаться прозрачностью.
Этот цвет и нужно указать за место -1. Это будет считаться маской прозрачности.
Title: Re: Синхронизация последовательности потока
Post by: 3333333333 on November 29, 2016, 02:07:03 AM
В подготавливаемом фрагменте нужно закрасить, каким то цветом, то что должно считаться прозрачностью.
Этот цвет и нужно указать за место -1. Это будет считаться маской прозрачности.
[spoiler]
(http://savepic.net/8610192.png)
[/spoiler]
Какую маску для этого рисунка применить?
Title: Re: Синхронизация последовательности потока
Post by: Oraven on November 29, 2016, 07:37:02 AM
Картинка слишком большая, но если взять уголок, применить цветокоррекцию 6ого уровня и вызезать белый фон то так.
Code: (clickermann) [Select]
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", 65280, 80)
   LCLICK($_return1, $_return2)
   WAITMS(100)
END_IF
Title: Re: Синхронизация последовательности потока
Post by: 3333333333 on November 29, 2016, 12:26:52 PM
Картинка слишком большая, но если взять уголок, применить цветокоррекцию 6ого уровня и вызезать белый фон то так.
Code: (clickermann) [Select]
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", 65280, 80)
   LCLICK($_return1, $_return2)
   WAITMS(100)
END_IF
Для вырезания белого фона gimp подойдёт?
я конечно нуб, но видел писал кто -то IF_PICTURE_IN -это зло, проверено. Полагаю ,Лучше индексировать массив данных изображения("векторизировать") процедурой scanpicture, снимок экрана.
Там ралли, и 80% долго будет тормозить, я буду в хвосте...
Title: Re: Синхронизация последовательности потока
Post by: Vint on November 29, 2016, 12:58:44 PM
я конечно нуб, но видел писал кто -то IF_PICTURE_IN -это зло, проверено.
Не всё правда, что на заборах написано.

Полагаю ,Лучше индексировать (векторизировать) процедурой scanpicture, снимок экрана.
??? WTF

Векторизация?... Кликермэн даже с таким понятием не знаком, все команды работают с растром.

Как SCANPICTURE должна ускорить по сравнению с IF_PICTURE_IN ?
Анекдот в тему:
Quote
Шерлок Холмс и доктор Ватсон едут в поезде. Увидев в окно стадо овец, Ватсон заметил:
- Посмотрите, Холмс, какое большое стадо.
Да, немалое, - лениво бросает Холмс, - целых семьсот восемьдесят четыре овцы.
- Господи. Холмс! - восклицает Ватсон. - Не ужели вы их успели пересчитать?
- Конечно, только не овец. Этот фокус знает любой школьник. Я просто пересчитал ноги и разделил полученное число на четыре.

Title: Re: Синхронизация последовательности потока
Post by: 3333333333 on November 29, 2016, 01:34:59 PM
хз
[spoiler]
Code: (clickermann) [Select]
GETSCREEN

SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "picture.bmp", -1, 100)

$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
   $X = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $Y = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   MOVE($X, $Y)   // перемещаем курсор
   LOGWRITE ("X: ", $X, " Y: ", $Y)
   WAITMS(100)
END_CYC
UNDEFINE($ARR_SCAN)

HALT

GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100)
   LCLICK($_return1, $_return2)
   WAITMS(100)
END_IF
[/spoiler]
ооооооо да раз пошло такое отклонение от темы, мне тоже любопытно, я конечно поправлюсь индексация массива данных изображения, мне проще называть "векторизация", может кого-то и ввёл в заблуждение извиняюсь
но вот 2 примера из шаблона ну не работают 100%, первый сработает на 95% если только процедура MOVE($X, $Y)   // перемещаем курсор будет далеко за пределами да и после задержки
второй 50 на 50 практического применения у меня не нашло, как бы я не "мудрил" с параметрами в топку...
Title: Re: Синхронизация последовательности потока
Post by: Vint on November 29, 2016, 02:09:29 PM
ооооооо да раз пошло такое отклонение от темы, мне тоже любопытно, я конечно поправлюсь индексация массива данных изображения, мне проще называть "векторизация", может кого-то и ввёл в заблуждение извиняюсь

А мне проще называть "корреляция", а по средам "абстракция"... Но это никак не поможет лучше меня понимать.
Ладно, замяли, это мне не нужно было комментировать.

но вот 2 примера из шаблона ну не работают 100%, первый сработает на 95% если только процедура MOVE($X, $Y)   // перемещаем курсор будет далеко за пределами да и после задержки
второй 50 на 50 практического применения у меня не нашло, как бы я не "мудрил" с параметрами в топку...
При чём здесь MOVE, совсем непонятно.

Нужно понять как действует поиск, что когда сверяется и станет ясно как это настроить. Не нужно бросаться и ставить цвет прозрачности и пр.

По отличиям.
IF_PICTURE_IN после нахождения первого совпадения образца прекращает работу и возвращает координаты в $_return1, $_return2.
SCANPICTURE Проходит ВСЮ указанную зону. Практически, внутренне это последовательность вызовов IF_PICTURE_IN с занесением результатов в массив.
В поиске отличий нет. Совсем. При тех же параметрах. Не может такого быть что SCANPICTURE найдёт, а IF_PICTURE_IN нет.

Если хочешь решить свой вопрос с поиском, то опиши точно задачу: где искать, что искать. Опиши что это такое. Скрины сделай.
Проанализируй не изменяется ли изображение - сдвиги, масштаб, цвет, затенение, подсветка, сглаживание.
Если проблема с поиском заготовки, сделай несколько скринов в разные моментывремени (не подряд). Желательно после перемещения окна/поля, смене локации туда-сюда, перезапуске приложения и т.д.
Title: Re: Синхронизация последовательности потока
Post by: Oraven on November 29, 2016, 02:24:24 PM
Не знаю что такое gimp, использую фотошоп. Но и стандартный Paint для этих целей сгодится.

Фон вырезать приходится в редких случаях. Обычно достаточно вырезать маленький фрагментик из искомого изображения, не забыв сделать цветокоррекцию и применив процент нахождения.

Функции должны работать одинаково. IF_PICTURE_IN останавливается сразу после нахождения 1 фрагмента, а SCANPICTURE продолжает анализ до конца области пытаясь найти все вхождения, что увеличивает время.
Title: Re: Синхронизация последовательности потока
Post by: Vint on November 29, 2016, 05:10:31 PM
Я говорил про конкретную задачу поиска картинки. С которой проблемы.
Title: Re: Синхронизация последовательности потока
Post by: 3333333333 on November 29, 2016, 08:08:17 PM
Я говорил про конкретную задачу поиска картинки. С которой проблемы.
Посмотрите пожалуйста Выше
или
тут
[spoiler]
(http://savepic.net/8610192.png)
[/spoiler]
Title: Re: Синхронизация последовательности потока
Post by: 3333333333 on November 30, 2016, 07:14:19 AM
Посмотрите пожалуйста Выше
  ::) Вот ::) это ::) всегда ::) пожалуйста, ::) а ::) то ::) обычно ::) наоборот ::) говорят;  ::) "смотри ::) под ::)  ноги  ::) или ::) смотри  ::)  куда  ::) прёшь?!" ::)  ::)  ::)  ::)  :o  ::)  ::)   ::)  ::)                                                                     
           
Ответ
Был
           
НЕ Тебе
ИДИ мимо
напиши, что по теме?
Title: Re: Синхронизация последовательности потока
Post by: Vint on November 30, 2016, 10:35:44 AM
Посмотрите пожалуйста Выше
или тут
[spoiler]
(http://savepic.net/8610192.png)
[/spoiler]
Есть скрин этой рамки на другом фоне?

Выше, ниже... Информация по капле.
Почему не задать чёткий вопрос?
Quote
Не (стабильно) находится изображение вот такой рамки...СКРИН.
Использовались вот такие заготовки СКРИН или СКРИН или СКРИН.
Вот она бывает на таком фоне СКРИН или на таком СКРИН, СКРИН.
Вот так она выглядит при изменении размеров окна СКРИН.
Сейчас ищем таким кодом КОД.
Так же пробовались такие параметры: процент совпадения вплоть до...
Пробовался цвет прозрачности раскрашенный так:  ЗАГОТОВКА

Почему не пробовали вырезать заготовку по простому в лоб, так:
Title: Re: Синхронизация последовательности потока
Post by: 3333333333 on November 30, 2016, 01:31:18 PM
Посмотрите пожалуйста Выше
или тут
[spoiler]
(http://savepic.net/8610192.png)
[/spoiler]
Есть скрин этой рамки на другом фоне?

Выше, ниже... Информация по капле.
Почему не задать чёткий вопрос?
Quote
Не (стабильно) находится изображение вот такой рамки...СКРИН.
Использовались вот такие заготовки СКРИН или СКРИН или СКРИН.
Вот она бывает на таком фоне СКРИН или на таком СКРИН, СКРИН.
Вот так она выглядит при изменении размеров окна СКРИН.
Сейчас ищем таким кодом КОД.
Так же пробовались такие параметры: процент совпадения вплоть до...
Пробовался цвет прозрачности раскрашенный так:  ЗАГОТОВКА

Почему не пробовали вырезать заготовку по простому в лоб, так:
Не стабильно находится изображение, вот этой рамки
[spoiler]
(http://savepic.net/8610192.png)
[/spoiler]
масштаб 100%, фон всегда белый
браузер palemoon (firefox)
ширина рамки не меняется, вертикальные линии только (растягиваются, от количества баннеров)
пробовал вот такие варианты
[spoiler]
(http://savepic.net/8604126.jpg), (http://savepic.net/8603102.jpg), (http://savepic.net/8608222.jpg)
[/spoiler]

пробовал 50% масштаб
с такими же вариантами
[spoiler]
(http://savepic.net/8607198.jpg)
[/spoiler]
пробовал рекомендации от Oraven с закрашиванием заготовки и маски в коде, кликер дёргается на одном месте, картинку не находит
ищется вот таким кодом
[spoiler]
Code: (clickermann) [Select]
SUB(FIND, $name_image,$startcoord_X,$startcoord_Y)
   
   
   
   
   SCANPICTURE($ARR_SCAN, $startcoord_X,$startcoord_Y, $_xmax,$_ymax, $name_image, -1, 100)
   
   $ARR_NUM = 0
   WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
      $X = $ARR_SCAN [$ARR_NUM]
      INC($ARR_NUM,1)
      $Y = $ARR_SCAN [$ARR_NUM]
      INC($ARR_NUM,1)
     
      WAITMS(500+ $S_CORR)
      $Z = $X
     
     
      HINTPOPUP($name_image, "Picture")
     
   END_CYC
 
   
END_SUB

[/spoiler]
в параметрах кода особо ничего не менял, кроме bgcolor, и процент совпадения 80, 90, 100%
заметил такую особенность что красный цвет рамки каждый раз меняется от 214 до 523885
пробовал colormod-6,7, 8, кликер дергается и ничего не находит
Title: Re: Синхронизация последовательности потока
Post by: Vint on November 30, 2016, 03:19:08 PM
масштаб 100%, фон всегда белый
... bgcolor
bgcolor сразу в топку. Фон то один. Тем более там плавный переход.

пробовал 50% масштаб
50% чего? Везде все проценты 100.

Не стабильно находится изображение, вот этой рамки...
Что-то размеры подозрительные. Почему всё разного размера? Оригинал и заготовки... Только в этом посте 4 размера. Рамка что масштабируется по всем осям от содержимого?

Почему все заготовки в JPEG? По специфике, всё связанное со скриптами на этом форуме должно быть только в форматах без потерь!
Title: Re: Синхронизация последовательности потока
Post by: 3333333333 on November 30, 2016, 04:16:06 PM
масштаб 100%, фон всегда белый
... bgcolor
bgcolor сразу в топку. Фон то один. Тем более там плавный переход.

пробовал 50% масштаб
50% чего? Везде все проценты 100.

Не стабильно находится изображение, вот этой рамки...
Что-то размеры подозрительные. Почему всё разного размера? Оригинал и заготовки... Только в этом посте 4 размера. Рамка что масштабируется по всем осям от содержимого?

Почему все заготовки в JPEG? По специфике, всё связанное со скриптами на этом форуме должно быть только в форматах без потерь!
сервис загрузки картинок для сайта не понимает bmp
Title: Re: Синхронизация последовательности потока
Post by: Vint on November 30, 2016, 11:58:22 PM
А, ну тогда всё.

У нас один сервис остался?
Заливай png, зачем bmp.
На форуме работают вложения до 1 мб.
Title: Re: Синхронизация последовательности потока
Post by: 3333333333 on December 01, 2016, 07:52:44 AM
А, ну тогда всё.

У нас один сервис остался?
Заливай png, зачем bmp.
На форуме работают вложения до 1 мб.
Уважаемый, в чём смысл(разница)? Для сайта одно (что влезает) для кликера другое (с чем может работать). Тут просто, напрашиватеся, вопрос, есть системные требования, а есть железные требования (процессор, мат плата, видеокарта, ноутбук(нетбук) или стац. ПК и т.п.). С какими-то моделями кликер работает (в таких-то ...режимах, а в таких-то ... куча ошибок)?
Практика: заметил такую особенность, что на ноутбуках (со встроенной графикой процессора) при 100% масштабе, картинки ищутся нормально, но стоит изменить масштаб (уменьшить) и тут кликер слепнет(не находит рисунки). Даже процедура SCREENSHOT показывает, непропорциональности и сдвиги, цвета плывут, картинки искажаются, центр убегает.
Title: Re: Синхронизация последовательности потока
Post by: Vint on December 01, 2016, 09:21:22 AM
Уважаемый, в чём смысл(разница)? Для сайта одно (что влезает) для кликера другое (с чем может работать).
Разница огромна. Обычно, если просят скрины и тем более заготовки, то собираются использовать это в анализе и тестах. И здесь JPEG бесполезен от слова "совсем".
Вот что можно сделать с выложенными изображениями из поста? Ничего, только  посмотреть на них из далека... и закрыть.

Тут просто, напрашиватеся, вопрос, есть системные требования, а есть железные требования (процессор, мат плата, видеокарта, ноутбук(нетбук) или стац. ПК и т.п.). С какими-то моделями кликер работает (в таких-то ...режимах, а в таких-то ... куча ошибок)?
одит рисунки). Даже процедура SCREENSHOT показывает, непропорциональности и сдвиги, цвета плывут, картинки искажаются, центр убегает.
Кликер не работает с железом, только с софтом. Железо здесь влияет только на производительность которую нужно учитывать.

Практика: заметил такую особенность, что на ноутбуках (со встроенной графикой процессора) при 100% масштабе, картинки ищутся нормально, но стоит изменить масштаб (уменьшить) и тут кликер слепнет(не находит рисунки). Даже процедура SCREENSHOT показывает, непропорциональности и сдвиги, цвета плывут, картинки искажаются, центр убегает.
А что ещё должно происходить при изменении масштаба?
Кликер не ищет "картинки" он ищет совпадение пикселов.
Title: Re: Синхронизация последовательности потока
Post by: 3333333333 on December 01, 2016, 10:42:47 AM
Уважаемый, в чём смысл(разница)? Для сайта одно (что влезает) для кликера другое (с чем может работать).
Разница огромна. Обычно, если просят скрины и тем более заготовки, то собираются использовать это в анализе и тестах. И здесь JPEG бесполезен от слова "совсем".
Вот что можно сделать с выложенными изображениями из поста? Ничего, только  посмотреть на них из далека... и закрыть.

Тут просто, напрашиватеся, вопрос, есть системные требования, а есть железные требования (процессор, мат плата, видеокарта, ноутбук(нетбук) или стац. ПК и т.п.). С какими-то моделями кликер работает (в таких-то ...режимах, а в таких-то ... куча ошибок)?
одит рисунки). Даже процедура SCREENSHOT показывает, непропорциональности и сдвиги, цвета плывут, картинки искажаются, центр убегает.
Кликер не работает с железом, только с софтом. Железо здесь влияет только на производительность которую нужно учитывать.

Практика: заметил такую особенность, что на ноутбуках (со встроенной графикой процессора) при 100% масштабе, картинки ищутся нормально, но стоит изменить масштаб (уменьшить) и тут кликер слепнет(не находит рисунки). Даже процедура SCREENSHOT показывает, непропорциональности и сдвиги, цвета плывут, картинки искажаются, центр убегает.
А что ещё должно происходить при изменении масштаба?
Кликер не ищет "картинки" он ищет совпадение пикселов.
да масло состоит из масла, картинка и есть набор пикселов, в бмп я вам  в личку отправил ссылку, что касаемо процедуры и кликера совершенно верно
Title: Re: Синхронизация последовательности потока
Post by: Vint on December 01, 2016, 12:06:04 PM
да масло состоит из масла, картинка и есть набор пикселов...
;D естественно.
Контекст то другой. В нашем случае я имел ввиду, что кликер не ищет "картинки" ммм...  например с изображение груши. В разных масштабах - это разные картинки попиксельно, даже если изначально картинка одна.
Думаю понятно.

И только посмотрев скрины чуть стало ясней. Но всего чуть.
В браузере выставляется маленький масштаб 30% (зачем тогда 50% ??) Где об этом выше сказано хоть слово?
Если просто изменён масштаб в браузере и мы работаем с ним, то зачем выложена целая куча заготовок в масштабе 100%, 50%, 30% ?
Работаем со всеми этими масштабами?

И главное, масштабирование в браузере будет зависеть от самого браузера, и может даже его версии, т.к. могут применяться разные алгоритмы пересчёта и разные типы сглаживания.
Сделать на одном заготовки, а потом использовать на другом скорее всего не получится.
Title: Re: Синхронизация последовательности потока
Post by: 3333333333 on December 01, 2016, 03:10:58 PM
да масло состоит из масла, картинка и есть набор пикселов...
;D естественно.
Контекст то другой. В нашем случае я имел ввиду, что кликер не ищет "картинки" ммм...  например с изображение груши. В разных масштабах - это разные картинки попиксельно, даже если изначально картинка одна.
Думаю понятно.

И только посмотрев скрины чуть стало ясней. Но всего чуть.
В браузере выставляется маленький масштаб 30% (зачем тогда 50% ??) Где об этом выше сказано хоть слово?
Если просто изменён масштаб в браузере и мы работаем с ним, то зачем выложена целая куча заготовок в масштабе 100%, 50%, 30% ?
Работаем со всеми этими масштабами?

И главное, масштабирование в браузере будет зависеть от самого браузера, и может даже его версии, т.к. могут применяться разные алгоритмы пересчёта и разные типы сглаживания.
Сделать на одном заготовки, а потом использовать на другом скорее всего не получится.
так необходимо рассортировать:
1.При 100% масштабе, не все баннеры умещаются или ссылки, но как оказалось и 50% велик, поэтому 30% самое то.
2. от версии к версии браузера (позавчера и сегодня) + соответственно и сайт обновляется
поэтому приходится заново всю работу по заготовкам для каждого ПК