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

Основной раздел => Общие вопросы => Topic started by: komandirbk on December 15, 2017, 12:19:39 PM

Title: Подсчет найденных совпадений картинки
Post by: komandirbk on December 15, 2017, 12:19:39 PM
Здравствуйте, нужно, чтобы IF_PICTURE_IN или WHILE, не знаю, что лучше в данном случае.
В общем в 2 словах. MMORPG, квест от администрации.
По средине экрана пишется много текста, что то типа " , :::::: .... :::: ... "
И задача игроков быстро указать сколько точек в данном предложении.
Так вот, картинку в виде этой точки я сохранил. А теперь нужно, чтобы скрипт подсчитал сколько там точек и быстро мне вывел в цифру, которую я смогу вставить в чат.
Заранее спасибо:)
Title: Re: Подсчет найденных совпадений картинки
Post by: dramster on December 15, 2017, 12:40:22 PM
Code: (clickermann) [Select]
GETSCREEN
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "picture.bmp", -1, 100)//область поиска и имя искомого изображения впиши свою
print("количество кайденных картинок - ", ARRSIZE($ARR_SCAN)/2)
HALT
Title: Re: Подсчет найденных совпадений картинки
Post by: dramster on December 15, 2017, 12:45:48 PM
и имей в виду, если фон у твоего текста динамичен, то придется использовать игнорируемый цвет фона входного изображения.

если чтото не получится, то скинь сюда скрин своего текста (bmp или png) для наглядности.
Title: Re: Подсчет найденных совпадений картинки
Post by: komandirbk on December 15, 2017, 01:37:45 PM
Да, фон динамичен, уже пробовал с модом (6) вроде как более менее определяет
Title: Re: Подсчет найденных совпадений картинки
Post by: komandirbk on December 15, 2017, 01:50:39 PM
Вопрос, как сделать так, чтобы без halt оно не спамило мне весь лог, а отображалось в лог только когда там нашлась хотя бы одна точка?
Title: Re: Подсчет найденных совпадений картинки
Post by: Oraven on December 15, 2017, 02:33:46 PM
Code: (clickermann) [Select]
GETSCREEN
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "picture.bmp", -1, 100)//область поиска и имя искомого изображения впиши свою
IF(ARRSIZE($ARR_SCAN) > 0)
   LOGWRITE ("Количество точек: ", ARRSIZE($ARR_SCAN)/2)
   LOGSHOW (1, 100,100)
   UNDEFINE($ARR_SCAN)
   HALT
END_IF
WAITMS(100)
Title: Re: Подсчет найденных совпадений картинки
Post by: dramster on December 15, 2017, 02:35:50 PM
Вопрос, как сделать так, чтобы без halt оно не спамило мне весь лог, а отображалось в лог только когда там нашлась хотя бы одна точка?
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "picture.bmp", -1, 100)//область поиска и имя искомого изображения впиши свои
   SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "picture.bmp", -1, 100)//область поиска и имя искомого изображения впиши свои
   print("количество кайденных картинок - ", ARRSIZE($ARR_SCAN)/2)
   UNDEFINE($ARR_SCAN)
END_IF
waitms(200)

и насчет фона, я имел ввиду использование игнорируемого цвета

Синтаксис
IF_PICTURE_IN (x, y, x2, y2, "file", [bgcolor], [currency]) - производит поиск изображения в прямоугольной области буфера анализа

Параметры
x, y - числовые координаты левого верхнего угла области поиска
x2, y2 - числовые координаты правого нижнего угла области поиска
file - bmp файл, поиск которого будет осуществляться
bgcolor - необязательный параметр; игнорируемый цвет фона входного изображения
currency - необязательный параметр; точность поиска в процентах (1..99)

то есть в твоей искомой картинке нужно зарисовать фон любым цветом, и в параметр bgcolor ввести номер этого цвета.


Title: Re: Подсчет найденных совпадений картинки
Post by: komandirbk on December 15, 2017, 03:18:29 PM
(https://image.prntscr.com/image/PdpmoUf3Q9qDfoBd-x4jeQ.png)

Вот так выглядит эта точка на скрине. К сожалению у меня ее не определяет =( COLORMODE(6) использую
Title: Re: Подсчет найденных совпадений картинки
Post by: komandirbk on December 15, 2017, 04:15:31 PM
не апридиляит, значит есть атличия,
процент совпадения использовать нельзя, слишком маленький размер.
сохраняйте все неопределённые точки новыми картинками и сканируйте в один массив
COLORMODE(6) использую - мало!
Будьте решительнее, симёрка -счастливое число
а васьмёрка - символ бисканечности, она точна удача принесёт
кстати и фон игнарировать не придётся, он чёрненьким всегда будет! ;D

Всё таки сказывается тот факт, что не сплю уже полтора суток. Скрин то сохранил в COLORMODE (6), а вот в коде написал вот так
GETSCREEN
SCAN...
p.s. Про colormode(8) не подумал. Сейчас вроде всё норм работает. Спасибо. Потестирую.
Title: Re: Подсчет найденных совпадений картинки
Post by: komandirbk on December 15, 2017, 04:32:11 PM
не апридиляит, значит есть атличия,
процент совпадения использовать нельзя, слишком маленький размер.
сохраняйте все неопределённые точки новыми картинками и сканируйте в один массив
COLORMODE(6) использую - мало!
Будьте решительнее, симёрка -счастливое число
а васьмёрка - символ бисканечности, она точна удача принесёт
кстати и фон игнарировать не придётся, он чёрненьким всегда будет! ;D

p.s. как этот массив в набор текста извлечь?) какая команда?
Title: Re: Подсчет найденных совпадений картинки
Post by: komandirbk on December 15, 2017, 09:53:21 PM
массив общий $ARR_SCAN для  сканирования разных картинок точки.
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "picture1.bmp", -1, 100)//область поиска и имя искомого изображения впиши свои
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "picture2.bmp", -1, 100)//область поиска и имя искомого изображения впиши свои
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "picture3.bmp", -1, 100)//область поиска и имя искомого изображения впиши свои
полученное число элементов массива делится на два, это тебе уже писали
и копируется в переменную
клик по месту активации игрового чата,
обьединить строку лести админам и  полученную переменную
напечатать в чат через KEYSTRING("str",50)

KEYSTRING("$ARR_SCAN",60)

Что-то не так, да?