Автор: 645507 15.1.2022, 11:14
Добрый день. Подскажите есть ли смысл начинать разбираться в поиске картинок.
Ситуация что моя искомая кнопка может быть в рандомном месте
красным виделил область, зеленым что нужно искать
задний фон всегда разный
по сути можно искать Веселье и кликать на пару пикселей вверх него.
верно все?
благодарю
Автор: 645507 15.1.2022, 12:58
-
какой из данных вариантов будет удачней всего ?
Автор: 645507 15.1.2022, 13:16
взял для начала попробовать, скрипт с faq . но гдето чтото нетак)
Автор: 645507 15.1.2022, 14:18
обрезал картинки, сделал фон.
всё равно не ищет (((
Автор: cirus 15.1.2022, 16:35
Что-то вроде этого можно сделать:
картинка.bmp ( 1,93 килобайт )
Кол-во скачиваний: 173
Код
set #a findimage(0, 0, 1920, 1080 ("C:\картинка.bmp") %arr 2 80 1 5)
hint #a
if #a > 0
move %arr[1 1] %arr[1 2]
end_if
end_script
Автор: 645507 15.1.2022, 17:05
Цитата(cirus @ 15.1.2022, 17:35)
Что-то вроде этого можно сделать:
картинка.bmp ( 1,93 килобайт )
Кол-во скачиваний: 173Код
set #a findimage(0, 0, 1920, 1080 ("C:\картинка.bmp") %arr 2 80 1 5)
hint #a
if #a > 0
move %arr[1 1] %arr[1 2]
end_if
end_script
а скажите пожалуйста масштаб должен соблюдатся картинки в поиске и искуемой?
Автор: cirus 15.1.2022, 17:06
Цитата
а скажите пожалуйста масштаб должен соблюдатся картинки в поиске и искуемой?
Да.
Автор: 645507 15.1.2022, 21:11
Цитата(cirus @ 15.1.2022, 18:06)
Да.
каким-то чудом все начало работать, поигрался с координатами поиска. но работало через раз, после смени последнего параметра 5 на 15% , все стало работать, но я дума тут уже свои настройки для каждого.
буду очень благодарный если еще поможете немножко.
Если моя картинка чистая то все работает проверил раз 30 уже
картинка
Но есть момент что поверх картинки бежит строка и тогда нерозпознается.
вот как тут
картинка
каким образом указать что бы оно искало картинку пока не найдет, можно искатьь с интревалом 20 секунд, что бы зря не бегал
первоначальный код
скрипт
[code]init_arr %login (1) email@gmail.com email@gmail.com email@gmail.com
init_arr %pass (1) 1111 1111 1111
log mode compact
log clear
set #size size(%login[])
for #i 1 #size
log %login[1 #i]
log %pass[1 #i]
set workwindow 590498
left 229, 68
wait 75000
left 559, 181
wait 3000
left 24, 77 // учетная запись слева
wait 3000
left 327, 186 //учетная запись
wait 1200
left 345, 124 // login
wait 1200
repeat 22
send Backspace
end_repeat 22
wait 1200
send %login[1 #i]
wait 1000
Double_left 242, 153
wait 1200
send %pass[1 #i]
wait 1200
left 347, 222
wait 3000
left 558, 180
wait 3000
left 297, 294
wait 7000
left 303, 298 //вход в игру
wait 6000
left 495, 305 // в приключение
wait 45000
left 484, 154
wait 1800
left 432, 57 ////Веселье изначально было как 1 координата.
wait 1800
left 556, 235
wait 1800
left 383, 63 //избраное
wait 3500
repeat 10
wait 1000
left 334, 115
wait 23000
left 226, 252
wait 23000
left 226, 252
wait 23000
left 226, 252
wait 23000
left 226, 252
wait 23000
left 226, 252
wait 23000
left 226, 252
wait 23000
left 226, 252
wait 23000
left 226, 252
wait 23000
left 226, 252
wait 23000
left 553, 42
wait 1000
end_repeat 10
wait 1000
set workwindow 5113192
left 286, 18
wait 9800
log
end_for
end_script
[code]
left 432, 57 ////Веселье изначально было как 1 координата. место вставля наш новый робочый код
set #a findimage(0, 0, 1920, 1080 ("C:\картинка.bmp") %arr 2 80 1 15)
hint #a
if #a > 0
move %arr[1 1] %arr[1 2]
end_if
Вопрос как сделать что бы он искал картинку пока не найдет
спс
Автор: cirus 15.1.2022, 21:34
Цитата
как сделать что бы он искал картинку пока не найдет
Код
while 1 == 1
set #a findimage(0, 0, 1920, 1080 ("C:\картинка.bmp") %arr 2 80 1 5)
hint #a
if #a > 0
move %arr[1 1] %arr[1 2]
break // выход из цикла
end_if
wait 100
end_while
end_script
Цитата
Но есть момент что поверх картинки бежит строка и тогда нерозпознается.
Зачем искать всю картинку? Можно искать нижнюю часть. Обратите внимание на картинку, которую я выложил для примера, там нет верхней части, чтобы бегущая строка не влияла на поиск.
Автор: 645507 15.1.2022, 21:38
Цитата(cirus @ 15.1.2022, 22:34)
Код
while 1 == 1
set #a findimage(0, 0, 1920, 1080 ("C:\картинка.bmp") %arr 2 80 1 5)
hint #a
if #a > 0
move %arr[1 1] %arr[1 2]
break // выход из цикла
end_if
wait 100
end_while
end_script
Зачем искать всю картинку? Можно искать нижнюю часть. Обратите внимание на картинку, которую я выложил для примера, там нет верхней части, чтобы бегущая строка не влияла на поиск.
да спасибо, я картинку переделывал под рабочий пк. сейчас поиграюсь с картинкой. попробую чисто нижнюю часть.
исходя из того что по тестам иногда бывает не находит зациклить поиск лучшее стабильное решение.
от души всем)
Автор: 645507 16.1.2022, 18:25
@cirus
возникла проблема что 15% входов не определяет картинку, если ставлю процент выше неточности, то клацает на другую картинку, там много цветов похожих.
А реально ли реализовать такой вариант что бы я добавил пару вариантов искомой картинки, и что бы скрипт по порядку их сверял и клацал на первую которую найдет
рабочий сейчас код
Цитата
while 1 == 1
set #a findimage(0, 0, 1920, 1080 ("C:\картинка.bmp") %arr 2 80 1 5)
hint #a
if #a > 0
move %arr[1 1] %arr[1 2]
break // выход из цикла
end_if
wait 100
end_while
end_script
подойдет ли данный скрипт ?
Цитата
set #startX 0
set #startY 0
set #endX 1920
set #endY 1080
set $path "C:\images\" // путь к картинкам
set %image [1] pic.bmp // имя изображения
set %image [2] pic1.bmp // имя второго изображения
set %image [3] pic2.bmp // третьего
set %image [4] pic3.bmp // имена могут быть любыми
set #size size(%image) // всего картинок
hint Всего картинок #size
:metka
for #i 1 #size 1 // цикл для поиска картинок
set #a findimage (#startX #startY #endX #endY ($path%image[#i].bmp) %arr 2)
if #a > 0
left %arr[1 1] %arr[1 2] // клацнуть на найденную картинку
break
end_if
wait 100
end_while
end_script
Автор: cirus 16.1.2022, 18:55
Цитата
подойдет ли данный скрипт ?
Нет, потому что написан с ошибками и даже не запустится.
Автор: 645507 16.1.2022, 19:01
Цитата(cirus @ 16.1.2022, 19:55)
Нет, потому что написан с ошибками и даже не запустится.
част с faq взял а часть с старого, моя логика не работает значит. Если будет время свободное подсобите , как данную идею лучше реализовать .
большое спасибо
Автор: cirus 16.1.2022, 19:10
Код
set #startX 0
set #startY 0
set #endX 1920
set #endY 1080
set $path "C:\images\" // путь к картинкам
set %image [1] pic // имя изображения
set %image [2] pic1 // имя второго изображения
set %image [3] pic2 // третьего
set %image [4] pic3 // имена могут быть любыми
set #size size(%image) // всего картинок
while 1 == 1
for #i 1 #size 1 // цикл для поиска картинок
set #a findimage (#startX #startY #endX #endY ($path%image[#i].bmp) %arr 2)
if #a > 0
kleft %arr[1 1] %arr[1 2] // клацнуть на найденную картинку
break 2
end_if
wait 100
end_for
end_while
end_script
Автор: 645507 16.1.2022, 23:47
Цитата(cirus @ 16.1.2022, 20:10)
Код
set #startX 0
set #startY 0
set #endX 1920
set #endY 1080
set $path "C:\images\" // путь к картинкам
set %image [1] pic // имя изображения
set %image [2] pic1 // имя второго изображения
set %image [3] pic2 // третьего
set %image [4] pic3 // имена могут быть любыми
set #size size(%image) // всего картинок
while 1 == 1
for #i 1 #size 1 // цикл для поиска картинок
set #a findimage (#startX #startY #endX #endY ($path%image[#i].bmp) %arr 2)
if #a > 0
kleft %arr[1 1] %arr[1 2] // клацнуть на найденную картинку
break 2
end_if
wait 100
end_for
end_while
end_script
Все прекрасно работает, можно ли вас както отблагодарит материально или форум?)