Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ UO Pilot _ findimage определить

Автор: 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



Все прекрасно работает, можно ли вас както отблагодарит материально или форум?)

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)