Автокликер Clickermann :: Форум
Основной раздел => Ошибки => Topic started by: Dreight on December 11, 2017, 10:30:33 PM
-
Всем привет.
У меня вот такой код:
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.
Объясните пожалуйста почему так происходит.
-
Ну как это можно проверить без набора твоих картинок-цифр и картинки на которой нужно искать эти цифры?
Сложи все это в Zip архив и прикрепи к сообщению.
Скриншот на котором нужно искать цифры должен быть в BMP или PNG формате.
-
Ты пишешь код для поиска чисто красных цифр N размера определённого шрифта для Paint и скинул картинку в jpg. Я сомневаюсь в правильности твоего выбора без использования цветокоррекции и последующем нахождении где-то ещё, кроме Paint
Думаю здесь есть место для этого сообщения http://crapware.aidf.org/forum/index.php?topic=88.msg1571#msg1571
-
До меня допёрло, у тебя GETSCREEN вне цикла. Помести его перед IF_PICTURE_IN
-
До меня допёрло, у тебя GETSCREEN вне цикла. Помести его перед IF_PICTURE_IN
Зачем? Никаких изменений нет. Действий не производится.
-
Ну как это можно проверить без набора твоих картинок-цифр и картинки на которой нужно искать эти цифры?
Сложи все это в Zip архив и прикрепи к сообщению.
Скриншот на котором нужно искать цифры должен быть в BMP или PNG формате.
Ну, вроде, сделал. Держите)
-
Ты пишешь код для поиска чисто красных цифр N размера определённого шрифта для Paint и скинул картинку в jpg. Я сомневаюсь в правильности твоего выбора без использования цветокоррекции и последующем нахождении где-то ещё, кроме Paint
Думаю здесь есть место для этого сообщения http://crapware.aidf.org/forum/index.php?topic=88.msg1571#msg1571
Я вообще не понял твоего сообщения. Имеешь в виду, что я ищу цифры на "шакальной" джепегешной картинке? Нет, та картинка, на которой я ищу цифры, она PNG, так что там нет никаких искажений. Если бы были проблемы с качеством картинки, то у меня бы просто ничего не находилось.
Скрин в jpg потому что изначально я кидал его в обсуждение ВК, а после скачал из ВК и залил сюда.
-
Да действительно находит и 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)
-
4.12 это как Windows Vista
:) :D
4.11 соответственно XP
4.13 надеюсь 7-ка
Сижу на 4.11 в прямом и переносном (на работе XP)
4.13 пока только для опытов
-
Да действительно находит и 2 и 1. Похоже что в версии 4.12 область анализа захватывает некоторое пространство правее сверх введенных координат.
тоже потестировал с поиском. как оказалось, это "некоторое пространство" равно ширине искомой картинки. и искомые картинки находит не только правее области, но и ниже на высоту той же искомой картинки.
получается, что если верхний левый пиксель искомой картинки находится в искомой области, то ее найдет в этой области независимо от ее размера , и не зависимо от того, помещается она в этой области или нет.
вот на такой картинке (https://i.imgur.com/ozSxqMR.png), при поиске в области которая захватывает цифру "2", найдет все цифры. а чтобы найти только цифру "2", достаточно указать область поиска в один пиксель (верхний левый двойки).
странно, что ранее никто этого не замечал :-\ . в тринадцатой версии вроде исправлено.
-
тоже потестировал с поиском...
Классно проанализировали и всё расписали *большой палец вверх* 8)
странно, что ранее никто этого не замечал
Ай да я, ай молодец ;D
-
Скачай последнюю бета версию...
Спасибо, попробую. Надеюсь, больше такого не будет :)
Если вдруг что - ещё напишу.
-
странно, что ранее никто этого не замечал
Ай да я, ай молодец ;D
Мало кто пользуется 4.12
Вообще заметили, не знаю она это или другая. Была тема, что на некоторых версиях не учитывался размер искомой картинки. По идее область нужно проверять при 100% и уменьшать на размер картинки.
Или для всех %, универсальный: пикселы которые вылезли подсчитывать как не совпавшие.
-
Согласен с автором темы.Столкнулся с точно такой ситуацией.
Фон разноцветный,картинка поиска - разный текст одного цвета
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.
-
Милочка! При 10 % совпадения, программа может найти портрет Иосифа Виссарио́новича Сталина, на изобажении Российского флага!
А не ваши букавки с одинаковым цветом и фоном, вы хоть думайте немного, прежде чем на всё соглашаться!
Нет вы неправы дорогуша. Ищет то что нужно просто очень долго ))
-
Конечно долго, иначе как процент сверить. И чем он меньше, тем больше холостых проверок на каждый пиксел области.
Только уменьшать область и заготовку. Какие размеры сейчас?
-
Кто то там говорил про то, что Сталин на флаге РФ есть. Так вот, я проверил, и действительно он там есть :o . И даже не при 10%, а при 25% !!!!
(https://i.imgur.com/5w7m045.png)
Не верите? Можете проверить.
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "stalin.bmp", -1, 25)
print("Сталин найден на флаге РФ в координатах - ",$_return1,"x", $_return2)
else
print("Нету Сталина :(")
END_IF
halt
Искомая картинка во вложении.
-
Vint :размер картинки 0.56 на 0.34 см ,область сканирования "510,242, 1081,677" (http://)
dramster : не исключая фона ты на ней и фигу сможешь найти ))
-
Vint :размер картинки 0.56 на 0.34 см ,область сканирования "510,242, 1081,677" (http://)
dramster : не исключая фона ты на ней и фигу сможешь найти ))
0.56 на 0.34 см :D - линейкой мерял?
кстати и на твоей картинке фона исключения нету.
а вообще, согласен, что такого типа картинки очень сложно найти, где буквы сливаются с фоном и постоянно сглаживаются, хз как у тебя там находит их. или там фон статичен?
-
х.з чем паинт меряет ,но там в настройках свойства - можно и в сантиметрах выставить.фон - морская гладь на паузе,colormod не справляется т.к при увеличении цветокоррекций появляются белые квадратики и они не всегда совпадают с картинкой т.к она движется.мне в моём случае фон ненужно исключать ,при 10% скане картинка ищется идеально ,пропусков не было
-
х.з чем паинт меряет ,но там в настройках свойства - можно и в сантиметрах выставить.фон - морская гладь на паузе,colormod не справляется т.к при увеличении цветокоррекций появляются белые квадратики и они не всегда совпадают с картинкой т.к она движется.мне в моём случае фон ненужно исключать ,при 10% скане картинка ищется идеально ,пропусков не было
находит, это хорошо. но 10% это очень долго. совет для ускорения:
скорее всего пикселы твоего фона врядли совпадут при поиске, они с каждым фреймом разные. а вот эти самые светлые, которые на верхушках букв возможно и статичны, какраз посчитал их - гдето 26-28 штук, а 10% от твоей заготовки, это 26 пикселей.
есть 2 выхода. первый - это закрасить все темные пиксели игнорируемым цветом, и дальше проверять процент от 70 до 90%. второй - это применить минимальную цветокоррекцию, чтобы все темные пиксели стали одним цветом, и опятьже процент увеличивать до 70-90%. колормод 3-4 вполне приравнивает все цвета фона в один.
2. поиск 10% совпадения- не бред,а жизненная необходимость (clormod не помогает ) и он реально работает
что значит не помогает? тоесть не находит вообще? есть подозрения, что не верно используется колормод. я надеюсь искомую заготовку сохранял в томже колормоде, что и использовался при поиске? увеличение уровня цветокоррекции может привести лишь к тому, что картинку начнет находить в неположенном месте.
и еще, скинь скрин своей искомой области в момент присутствия искомой картинки. я бы поэкспериментировал с коррекцией и процентом.
-
вот скрин
-
вот второй скрин
-
И что здесь "clormod не помогает"?
COLORMODE 8 - даёт идеальное отделение.
"Moby Dick" между скринами отличается в 1 (один!) пиксель.
"Trancus" не отличается совсем. Т.е. 100%.
Можно накинуть чуток %, если существует возможность наложения имени на другую рыбу.
-
В игре не помогает ,все параметры colormod пробовал.Идеально ищет только ту картинку с которой сделан скри - другие игнорит
-
Плевать.С 10% работает идеально,сканю 2 картинки одновременно, с задачей справляется без нарекании.Если автор в следующем релизе оптимизирует скорость скано то будет хорошо,нет - и так сойдет ))
-
Если автор в следующем релизе оптимизирует скорость скано то будет хорошо,нет - и так сойдет ))
да тут скорость скана итак мегакосмос!!! главное правильно его использовать. никому и в голову не приходило искать чтолибо на экране с 10% точностью. как минимум 60-70%. если процент меньше, то, во первых - возможны ложные находки, как со сталином на флаге, во вторых - значительно увеличивает время поиска, в третьих - излишне нагружается цп. насчет "возможны ложные находки", это тебе везет, что водичка вся синяя, а рыбки серые. вот тебе и везет, что твои 10% пикселей больше нигде и нету. в основном в играх все цвета радуги, и разбросаны по всему экрану.
до тебя все хотят донести, что ты используешь колормод не правильно!!! а ты все равно стоишь на своих 10% в несколько секунд. при правильном подходе скорость поиска увеличится как минимум раз в 100, и плюс к этому проц не так будет загружен.
как писал Vint выше - COLORMODE 8 - даёт идеальное отделение. если так, то при поиске с COLORMODE 8, тебе потребуется заскринить исомую картинку в томже уровне цветокоррекции.
то есть берем вот такой код
// Получение скриншота с цветокоррекцией (фильтр 8)
GETSCREEN
COLORMODE(8)
SCREENSHOT
HALT
запускаем. открываем сохраненный скрин паинтом (скрин в папке screens в папке с прогай, либо в папке с сохраненным кодом). вырезаем нужное имя рыбы, при COLORMODE 8 желательно захватить не 2-3 буквы, а все 6-8, чтоб наверняка. сохраняем этот фрагмент (естественно в BMP 24bit).
все, теперь можем обработанную картинку искать с использованием цветокоррекции.
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 чем то не угодит, мало ли, то можешь поэкспериментировать таким же методом с другими уровнями коррекции.
-
если вдруг COLORMODE 8 чем то не угодит, мало ли, то можешь поэкспериментировать таким же методом с другими уровнями коррекции.
Спасибо мил человек за разжёванный ответ,но это я всё проделывал .COLORMODE выставлял от 8 до 1 ,картинка искалась мгновенно,но толька та с которой был сделан скрин,другие аналогичные картинки тупо игнорировались (наверное в игре стоит какая то защита).на скринах с разными ракурсами может и будет работать (не пробовал) ,но в самой игре этот метод не помогает.Единственный оптимальный вариант для меня ( хоть он и выглядит дико ) это IF_PICTURE_IN (0,0, $_xmax,$_ymax, "имя сохраненной заготовки с цветокоррекцией.bmp", -1, 10) хоть скан и происходит раз в 1 секунду.Что бы вы не говорили но ЭТО работает и удовлетворяет все условия кроме скорости.Самое главное ложных срабатывании нет и нет пропуска искомой картинки.Тест 60ч без перерыва - полёт нормальный
-
вот на такой картинке (https://i.imgur.com/ozSxqMR.png), при поиске в области которая захватывает цифру "2", найдет все цифры. а чтобы найти только цифру "2", достаточно указать область поиска в один пиксель (верхний левый двойки).
Чуваак, как ты вечно умудряешься находить все эти редкие закономерности?)) :o