Author Topic: Почему находится картинка, которая не должна находится?  (Read 6624 times)

0 Members and 1 Guest are viewing this topic.

Dreight

  • Освоившийся
  • **
  • Posts: 40
    • View Profile
Всем привет.
У меня вот такой код:
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.
Объясните пожалуйста почему так происходит.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Ну как это можно проверить без набора твоих картинок-цифр и картинки на которой нужно искать эти цифры?
Сложи все это в Zip архив и прикрепи к сообщению.
Скриншот на котором нужно искать цифры должен быть в BMP или PNG формате.

Mozetronick

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Ты пишешь код для поиска чисто красных цифр N размера определённого шрифта для Paint и скинул картинку в jpg. Я сомневаюсь в правильности твоего выбора без использования цветокоррекции и последующем нахождении где-то ещё, кроме Paint
Думаю здесь есть место для этого сообщения http://crapware.aidf.org/forum/index.php?topic=88.msg1571#msg1571
« Last Edit: December 13, 2017, 02:54:08 PM by Mozetronick »

Mozetronick

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
До меня допёрло, у тебя GETSCREEN вне цикла. Помести его перед IF_PICTURE_IN

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
До меня допёрло, у тебя GETSCREEN вне цикла. Помести его перед IF_PICTURE_IN
Зачем? Никаких изменений нет. Действий не производится.


Dreight

  • Освоившийся
  • **
  • Posts: 40
    • View Profile
Ну как это можно проверить без набора твоих картинок-цифр и картинки на которой нужно искать эти цифры?
Сложи все это в Zip архив и прикрепи к сообщению.
Скриншот на котором нужно искать цифры должен быть в BMP или PNG формате.

Ну, вроде, сделал. Держите)

Dreight

  • Освоившийся
  • **
  • Posts: 40
    • View Profile
Ты пишешь код для поиска чисто красных цифр N размера определённого шрифта для Paint и скинул картинку в jpg. Я сомневаюсь в правильности твоего выбора без использования цветокоррекции и последующем нахождении где-то ещё, кроме Paint
Думаю здесь есть место для этого сообщения http://crapware.aidf.org/forum/index.php?topic=88.msg1571#msg1571

Я вообще не понял твоего сообщения. Имеешь в виду, что я ищу цифры на "шакальной" джепегешной картинке? Нет, та картинка, на которой я ищу цифры, она PNG, так что там нет никаких искажений. Если бы были проблемы с качеством картинки, то у меня бы просто ничего не находилось.
Скрин в jpg потому что изначально я кидал его в обсуждение ВК, а после скачал из ВК и залил сюда.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Да действительно находит и 2 и 1. Похоже что в версии 4.12 область анализа захватывает некоторое пространство правее сверх введенных координат.

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

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

Полная сборка 4.13.005b
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

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
4.12 это как Windows Vista
 :) :D

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

Сижу на 4.11 в прямом и переносном (на работе XP)
4.13 пока только для опытов


dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Да действительно находит и 2 и 1. Похоже что в версии 4.12 область анализа захватывает некоторое пространство правее сверх введенных координат.


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

вот на такой картинке , при поиске в области которая захватывает цифру "2",  найдет все цифры. а чтобы найти только цифру "2", достаточно указать область поиска в один пиксель (верхний левый двойки).

странно, что ранее никто этого не замечал  :-\ . в тринадцатой версии вроде исправлено.

Dreight

  • Освоившийся
  • **
  • Posts: 40
    • View Profile
тоже потестировал с поиском...

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

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

Ай да я, ай молодец  ;D

Dreight

  • Освоившийся
  • **
  • Posts: 40
    • View Profile
Скачай последнюю бета версию...
Спасибо, попробую. Надеюсь, больше такого не будет :)
Если вдруг что - ещё напишу.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
странно, что ранее никто этого не замечал
Ай да я, ай молодец  ;D

Мало кто пользуется 4.12
Вообще заметили, не знаю она это или другая. Была тема, что на некоторых версиях не учитывался размер искомой картинки. По идее область нужно проверять при 100% и уменьшать на размер картинки.
Или для всех %, универсальный: пикселы которые вылезли подсчитывать как не совпавшие.


ikage

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Согласен с автором темы.Столкнулся с точно такой ситуацией.
Фон разноцветный,картинка поиска -  разный текст одного цвета
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.

ikage

  • Зашел в гости
  • *
  • Posts: 11
    • View Profile
Милочка! При 10 % совпадения, программа может найти портрет Иосифа Виссарио́новича Сталина, на изобажении Российского флага!
А не ваши букавки с одинаковым цветом и фоном, вы хоть думайте немного, прежде чем на всё соглашаться!


Нет вы неправы дорогуша. Ищет то что нужно просто очень долго ))