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

Основной раздел => Ошибки => Topic started by: Dreight on December 11, 2017, 10:30:33 PM

Title: Почему находится картинка, которая не должна находится?
Post by: Dreight on December 11, 2017, 10:30:33 PM
Всем привет.
У меня вот такой код:
Code: (clickermann) [Select]
GETSCREEN
for($a=0, $a < 10)
if_picture_in(476,262, 494,284,strconcat("screens/tsifra000",$a,".bmp"),-1,100)
print($a)
ELSE
print("net")
END_IF
end_cyc
HALT
При таком коде, почему-то, находит цифру "1". Хотя на приложенном скрине видно, что в введённую область не влазит даже пикселя цифры "1".
У меня версия Clickermann 4.12.001, запускал я этот код прям при запуске программы, размеры всех картинок с цифрами 18х22.
Объясните пожалуйста почему так происходит.
Title: Re: Почему находится картинка, которая не должна находится?
Post by: Oraven on December 13, 2017, 07:59:07 AM
Ну как это можно проверить без набора твоих картинок-цифр и картинки на которой нужно искать эти цифры?
Сложи все это в Zip архив и прикрепи к сообщению.
Скриншот на котором нужно искать цифры должен быть в BMP или PNG формате.
Title: Re: Почему находится картинка, которая не должна находится?
Post by: Mozetronick on December 13, 2017, 02:42:49 PM
Ты пишешь код для поиска чисто красных цифр N размера определённого шрифта для Paint и скинул картинку в jpg. Я сомневаюсь в правильности твоего выбора без использования цветокоррекции и последующем нахождении где-то ещё, кроме Paint
Думаю здесь есть место для этого сообщения http://crapware.aidf.org/forum/index.php?topic=88.msg1571#msg1571
Title: Re: Почему находится картинка, которая не должна находится?
Post by: Mozetronick on December 13, 2017, 03:17:26 PM
До меня допёрло, у тебя GETSCREEN вне цикла. Помести его перед IF_PICTURE_IN
Title: Re: Почему находится картинка, которая не должна находится?
Post by: Vint on December 13, 2017, 04:59:42 PM
До меня допёрло, у тебя GETSCREEN вне цикла. Помести его перед IF_PICTURE_IN
Зачем? Никаких изменений нет. Действий не производится.
Title: Re: Почему находится картинка, которая не должна находится?
Post by: Dreight on December 14, 2017, 11:53:43 PM
Ну как это можно проверить без набора твоих картинок-цифр и картинки на которой нужно искать эти цифры?
Сложи все это в Zip архив и прикрепи к сообщению.
Скриншот на котором нужно искать цифры должен быть в BMP или PNG формате.

Ну, вроде, сделал. Держите)
Title: Re: Почему находится картинка, которая не должна находится?
Post by: Dreight on December 14, 2017, 11:59:55 PM
Ты пишешь код для поиска чисто красных цифр N размера определённого шрифта для Paint и скинул картинку в jpg. Я сомневаюсь в правильности твоего выбора без использования цветокоррекции и последующем нахождении где-то ещё, кроме Paint
Думаю здесь есть место для этого сообщения http://crapware.aidf.org/forum/index.php?topic=88.msg1571#msg1571

Я вообще не понял твоего сообщения. Имеешь в виду, что я ищу цифры на "шакальной" джепегешной картинке? Нет, та картинка, на которой я ищу цифры, она PNG, так что там нет никаких искажений. Если бы были проблемы с качеством картинки, то у меня бы просто ничего не находилось.
Скрин в jpg потому что изначально я кидал его в обсуждение ВК, а после скачал из ВК и залил сюда.
Title: Re: Почему находится картинка, которая не должна находится?
Post by: Oraven on December 15, 2017, 09:32:15 AM
Да действительно находит и 2 и 1. Похоже что в версии 4.12 область анализа захватывает некоторое пространство правее сверх введенных координат.

В версии 4.13 этого уже нет.

Скачай последнюю бета версию.

Полная сборка 4.13.005b
http://crapware.aidf.org/forum/index.php?topic=356.msg24549#msg24549 (http://crapware.aidf.org/forum/index.php?topic=356.msg24549#msg24549)

Обновленный Clickermann.exe 4.13.007b скачай его и замени им файл в полной сборке.
http://crapware.aidf.org/forum/index.php?topic=356.msg24993#msg24993 (http://crapware.aidf.org/forum/index.php?topic=356.msg24993#msg24993)
Title: Re: Почему находится картинка, которая не должна находится?
Post by: Vint on December 15, 2017, 10:25:02 AM
4.12 это как Windows Vista
 :) :D

4.11 соответственно XP
4.13 надеюсь 7-ка

Сижу на 4.11 в прямом и переносном (на работе XP)
4.13 пока только для опытов
Title: Re: Почему находится картинка, которая не должна находится?
Post by: dramster on December 15, 2017, 11:58:25 AM
Да действительно находит и 2 и 1. Похоже что в версии 4.12 область анализа захватывает некоторое пространство правее сверх введенных координат.


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

вот на такой картинке (https://i.imgur.com/ozSxqMR.png), при поиске в области которая захватывает цифру "2",  найдет все цифры. а чтобы найти только цифру "2", достаточно указать область поиска в один пиксель (верхний левый двойки).

странно, что ранее никто этого не замечал  :-\ . в тринадцатой версии вроде исправлено.
Title: Re: Почему находится картинка, которая не должна находится?
Post by: Dreight on December 15, 2017, 04:01:20 PM
тоже потестировал с поиском...

Классно проанализировали и всё расписали *большой палец вверх* 8)

Quote
странно, что ранее никто этого не замечал

Ай да я, ай молодец  ;D
Title: Re: Почему находится картинка, которая не должна находится?
Post by: Dreight on December 15, 2017, 04:05:49 PM
Скачай последнюю бета версию...
Спасибо, попробую. Надеюсь, больше такого не будет :)
Если вдруг что - ещё напишу.
Title: Re: Почему находится картинка, которая не должна находится?
Post by: Vint on December 15, 2017, 04:48:38 PM
странно, что ранее никто этого не замечал
Ай да я, ай молодец  ;D

Мало кто пользуется 4.12
Вообще заметили, не знаю она это или другая. Была тема, что на некоторых версиях не учитывался размер искомой картинки. По идее область нужно проверять при 100% и уменьшать на размер картинки.
Или для всех %, универсальный: пикселы которые вылезли подсчитывать как не совпавшие.
Title: Re: Почему находится картинка, которая не должна находится?
Post by: ikage on December 26, 2017, 02:05:54 PM
Согласен с автором темы.Столкнулся с точно такой ситуацией.
Фон разноцветный,картинка поиска -  разный текст одного цвета
IF_PICTURE_IN (510,242, 1081,677, "A.bmp",255,10)
 ELSE
IF_PICTURE_IN (510,242, 1081,677, "B.bmp",255,10)
 ELSE
IF_PICTURE_IN (510,242, 1081,677, "C.bmp",255,10)

При прогоне такого условия:
1.Картинку "В" находит всегда в одних и тех же координатах если её реально нет,при появлении кликает в двух местах,с остальными картинками проблем нет
2. поиск 10% совпадения- не бред,а жизненная необходимость (clormod не помогает ) и он реально работает
3.Прогон всех трёх условии занимает 3-4 секунды т.е  сканирование одного условия занимает 1-2 секунды

В моём случае если поставить 60-100%% совпадения - скорость сканирования возрастает в разы,но перестанет находить искомое.

P.S  На счет ложного срабатывания я так понял уже ведётся работа,но если еще и оптимизируете скорость скана при 10% совпадении - я буду просто счастлив  и не только я ))
3.
Title: Re: Почему находится картинка, которая не должна находится?
Post by: ikage on December 26, 2017, 03:31:38 PM
Милочка! При 10 % совпадения, программа может найти портрет Иосифа Виссарио́новича Сталина, на изобажении Российского флага!
А не ваши букавки с одинаковым цветом и фоном, вы хоть думайте немного, прежде чем на всё соглашаться!


Нет вы неправы дорогуша. Ищет то что нужно просто очень долго ))
Title: Re: Почему находится картинка, которая не должна находится?
Post by: Vint on December 26, 2017, 04:34:15 PM
Конечно долго, иначе как процент сверить. И чем он меньше, тем больше холостых проверок на каждый пиксел области.

Только уменьшать область и заготовку. Какие размеры сейчас?
Title: Re: Почему находится картинка, которая не должна находится?
Post by: dramster on December 26, 2017, 04:37:38 PM
Кто то там говорил про то, что Сталин на флаге РФ есть. Так вот, я проверил, и действительно он там есть  :o . И даже не при 10%, а при 25% !!!!


(https://i.imgur.com/5w7m045.png)

Не верите? Можете проверить.

Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "stalin.bmp", -1, 25)
   print("Сталин найден на флаге РФ в координатах - ",$_return1,"x", $_return2)
else
   print("Нету Сталина :(")
END_IF
halt

Искомая картинка во вложении.



Title: Re: Почему находится картинка, которая не должна находится?
Post by: ikage on December 26, 2017, 06:14:46 PM
Vint :размер картинки 0.56 на 0.34 см ,область сканирования "510,242, 1081,677" (http://)

dramster : не исключая фона ты на ней и фигу сможешь найти ))
Title: Re: Почему находится картинка, которая не должна находится?
Post by: dramster on December 26, 2017, 07:04:58 PM
Vint :размер картинки 0.56 на 0.34 см ,область сканирования "510,242, 1081,677" (http://)

dramster : не исключая фона ты на ней и фигу сможешь найти ))

0.56 на 0.34 см  :D - линейкой мерял?

кстати и на твоей картинке фона исключения нету.

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

Title: Re: Почему находится картинка, которая не должна находится?
Post by: ikage on December 26, 2017, 07:22:10 PM
х.з чем паинт меряет ,но там в настройках свойства - можно и в сантиметрах выставить.фон - морская гладь на паузе,colormod не справляется т.к при увеличении цветокоррекций появляются белые квадратики и они не всегда совпадают с картинкой т.к она движется.мне в моём случае фон ненужно исключать ,при 10% скане картинка ищется идеально ,пропусков не было
Title: Re: Почему находится картинка, которая не должна находится?
Post by: dramster on December 26, 2017, 10:22:56 PM
х.з чем паинт меряет ,но там в настройках свойства - можно и в сантиметрах выставить.фон - морская гладь на паузе,colormod не справляется т.к при увеличении цветокоррекций появляются белые квадратики и они не всегда совпадают с картинкой т.к она движется.мне в моём случае фон ненужно исключать ,при 10% скане картинка ищется идеально ,пропусков не было

 находит, это хорошо. но 10% это очень долго. совет для ускорения:
 скорее всего пикселы твоего фона врядли совпадут при поиске, они с каждым фреймом разные. а вот эти самые светлые, которые на верхушках букв возможно и статичны, какраз посчитал их - гдето 26-28 штук, а 10% от твоей заготовки, это 26 пикселей.
 есть 2 выхода. первый - это закрасить все темные пиксели игнорируемым цветом, и дальше проверять процент от 70 до 90%. второй - это применить минимальную цветокоррекцию, чтобы все темные пиксели стали одним цветом, и опятьже процент увеличивать до 70-90%. колормод 3-4 вполне приравнивает все цвета фона в один.

2. поиск 10% совпадения- не бред,а жизненная необходимость (clormod не помогает ) и он реально работает

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

и еще, скинь скрин своей искомой области в момент присутствия искомой картинки. я бы поэкспериментировал с коррекцией и процентом.
Title: Re: Почему находится картинка, которая не должна находится?
Post by: ikage on December 27, 2017, 03:00:38 PM
вот скрин
Title: Re: Почему находится картинка, которая не должна находится?
Post by: ikage on December 27, 2017, 03:09:39 PM
вот второй скрин
Title: Re: Почему находится картинка, которая не должна находится?
Post by: Vint on December 27, 2017, 03:54:05 PM
И что здесь "clormod не помогает"?

COLORMODE 8 - даёт идеальное отделение.
"Moby Dick" между скринами отличается в 1 (один!) пиксель.
"Trancus" не отличается совсем. Т.е. 100%.
Можно накинуть чуток %, если существует возможность наложения имени на другую рыбу.
Title: Re: Почему находится картинка, которая не должна находится?
Post by: ikage on December 27, 2017, 04:20:20 PM
В игре не помогает ,все параметры colormod пробовал.Идеально ищет только ту картинку с которой сделан скри - другие игнорит
Title: Re: Почему находится картинка, которая не должна находится?
Post by: ikage on December 27, 2017, 06:06:41 PM
Плевать.С 10% работает идеально,сканю 2 картинки одновременно, с задачей справляется без нарекании.Если автор в следующем релизе оптимизирует скорость скано то будет хорошо,нет - и так сойдет ))
Title: Re: Почему находится картинка, которая не должна находится?
Post by: dramster on December 28, 2017, 12:26:00 AM
Если автор в следующем релизе оптимизирует скорость скано то будет хорошо,нет - и так сойдет ))
да тут скорость скана итак мегакосмос!!! главное правильно его использовать. никому и в голову не приходило искать чтолибо на экране с 10% точностью.  как минимум 60-70%. если процент меньше, то, во первых - возможны ложные находки, как со сталином на флаге, во вторых - значительно увеличивает время поиска, в третьих - излишне нагружается цп. насчет "возможны ложные находки", это тебе везет, что водичка вся синяя, а рыбки серые. вот тебе и везет, что твои 10% пикселей больше нигде и нету. в основном в играх все цвета радуги, и разбросаны по всему экрану.

до тебя все хотят донести, что ты используешь колормод не правильно!!! а ты все равно стоишь на своих 10% в несколько секунд. при правильном подходе скорость поиска увеличится как минимум раз в 100, и плюс к этому проц не так будет загружен.

как писал Vint выше - COLORMODE 8 - даёт идеальное отделение. если так, то при поиске с COLORMODE 8, тебе потребуется заскринить исомую картинку в томже уровне цветокоррекции.

то есть берем вот такой код

Code: (clickermann) [Select]
// Получение скриншота с цветокоррекцией (фильтр 8)
GETSCREEN
COLORMODE(8)
SCREENSHOT
HALT

запускаем. открываем сохраненный скрин паинтом (скрин в папке screens в папке с прогай, либо в папке с сохраненным кодом). вырезаем нужное имя рыбы, при COLORMODE 8 желательно захватить не 2-3 буквы, а все 6-8, чтоб наверняка. сохраняем этот фрагмент (естественно в BMP 24bit).
 
все, теперь можем обработанную картинку искать с использованием цветокоррекции.
Code: (clickermann) [Select]
GETSCREEN
COLORMODE(8)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "имя сохраненной заготовки с цветокоррекцией.bmp", -1, 95)
   print("нашли в координатах - ",$_return1," x ", $_return2)
   WAITMS(100)
else
   print("не нашли, значит нужно уменьшить процент совпадения!!!")
   WAITMS(100)
END_IF
halt

если вдруг COLORMODE 8  чем то не угодит, мало ли, то можешь поэкспериментировать таким же методом с другими уровнями коррекции.
Title: Re: Почему находится картинка, которая не должна находится?
Post by: ikage on December 28, 2017, 12:43:46 PM

если вдруг COLORMODE 8  чем то не угодит, мало ли, то можешь поэкспериментировать таким же методом с другими уровнями коррекции.

Спасибо мил человек за разжёванный ответ,но это я всё проделывал .COLORMODE выставлял от 8 до 1 ,картинка искалась мгновенно,но толька та с которой был сделан скрин,другие аналогичные картинки тупо игнорировались (наверное в игре стоит какая то защита).на скринах с разными ракурсами может и будет работать (не пробовал) ,но в самой игре этот метод не помогает.Единственный оптимальный вариант для меня ( хоть он и выглядит дико ) это IF_PICTURE_IN (0,0, $_xmax,$_ymax, "имя сохраненной заготовки с цветокоррекцией.bmp", -1, 10) хоть скан и происходит раз в 1 секунду.Что бы вы не говорили но ЭТО работает и удовлетворяет все условия кроме скорости.Самое главное ложных срабатывании нет и нет пропуска искомой картинки.Тест 60ч без перерыва - полёт нормальный
Title: Re: Почему находится картинка, которая не должна находится?
Post by: Cleoss on December 30, 2017, 12:54:56 PM
вот на такой картинке (https://i.imgur.com/ozSxqMR.png), при поиске в области которая захватывает цифру "2",  найдет все цифры. а чтобы найти только цифру "2", достаточно указать область поиска в один пиксель (верхний левый двойки).

Чуваак, как ты вечно умудряешься находить все эти редкие закономерности?))  :o