Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Findimage в Lua, что то делаю не так. Подскажите, как правильно?, Findimage в Lua
SeregaB
сообщение 23.9.2019, 12:58
Сообщение #1


**

Neophyte
Сообщений: 47
Регистрация: 22.9.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.405



В поиске статических и димамических картинок сталкнулся с тем, что не могу их найти Прикрепленное изображение, Прикрепленное изображение, Прикрепленное изображение (другие картинки находит).
Фон за картинками частично меняется.
Прикрепленное изображение
Пишу на языке Lua. Пробовал менять параметры сравнения и параметры оттенков, закрашивать фон, искать рамку от картинки, но почему то не находит. Подскажите пожалуйста, что я делаю не так?

Часть скрипта:

--lua
local startX, startY, endX, endY = 0, 0, 1280, 720 -- координаты поиска
local path2 = [["C:\картинка.bmp"]] -- путь к картинке
local arr, a = findimage (startX, startY, endX, endY, {path2}, 2, 70, 6, 5 ) -- поиск картинки
hint (a) -- результат поиска, подсказка в правом нижнем углу
if arr then -- если найдена
log ("картинка найдена в координатах X= " .. arr[1][1] .. " Y= " .. arr[1][2])
kleft (262, 594) -- кликнули
wait ("2s") -- ждать секунды
else
log ("Картинка.bmp не найдена")
end

По этому коду не получается найти ни одну из трех картинок, а другие картинки с темиже параметрами находит.
Посоветуйте пожалуйста, как правильно прописать поиск картинок?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 23.9.2019, 14:39
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26706
Пользователь №: 16.971
Возраст: 29



Нужно закрасить левый верхний пиксель и все динамические части в любой цвет, закрашенные пиксели не будут учитываться при поиске. Примерно так:
Прикрепленное изображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SeregaB
сообщение 23.9.2019, 15:07
Сообщение #3


**

Neophyte
Сообщений: 47
Регистрация: 22.9.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.405



Цитата(cirus @ 23.9.2019, 14:39) *

Нужно закрасить левый верхний пиксель и все динамические части в любой цвет, закрашенные пиксели не будут учитываться при поиске. Примерно так:
Прикрепленное изображение


Да я так пробовал, но почему то не находит, один раз правда нашел и все.
Какие параметры точности и оттенка лучше всего выставлять?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 23.9.2019, 15:16
Сообщение #4


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(SeregaB @ 23.9.2019, 19:07) *

Да я так пробовал, но почему то не находит, один раз правда нашел и все.
Какие параметры точности и оттенка лучше всего выставлять?

по-моему тут надо искать по красному квадрату а не по треугольникам
или добавить условие not при поиске когда он находит но ошибается
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SeregaB
сообщение 23.9.2019, 15:37
Сообщение #5


**

Neophyte
Сообщений: 47
Регистрация: 22.9.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.405



Цитата(Levo222 @ 23.9.2019, 15:16) *

по-моему тут надо искать по красному квадрату а не по треугольникам
или добавить условие not при поиске когда он находит но ошибается

Квадрат тоже пробовал искать, но почему то не находит, возможно из-за того что цвет в квадрате одинаковый.

Какие параметры точности и оттенка лучше всего выставлять?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SeregaB
сообщение 23.9.2019, 17:02
Сообщение #6


**

Neophyte
Сообщений: 47
Регистрация: 22.9.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.405



На скриншоте находит все картинки, а вот во время игры нет, может это из-за того, что картинкипостоянно меняют координаты?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SeregaB
сообщение 23.9.2019, 22:02
Сообщение #7


**

Neophyte
Сообщений: 47
Регистрация: 22.9.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.405



Вроде получилось, немного отредактировал изображения с заливкой фона и параметры поиска 50% совпадения и 20% оттенок, так вроде стал находить.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
bumer
сообщение 24.9.2019, 16:42
Сообщение #8


****

Apprentice
Сообщений: 167
Регистрация: 2.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.998



а вот если нужно чтоб в зависимости от найденной картинки, жал разные клевещи, то как организовать исполнение?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SeregaB
сообщение 24.9.2019, 19:31
Сообщение #9


**

Neophyte
Сообщений: 47
Регистрация: 22.9.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.405



Цитата(bumer @ 24.9.2019, 16:42) *

а вот если нужно чтоб в зависимости от найденной картинки, жал разные клевещи, то как организовать исполнение?

Условиями, например if
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
bumer
сообщение 24.9.2019, 20:50
Сообщение #10


****

Apprentice
Сообщений: 167
Регистрация: 2.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.998



Цитата(SeregaB @ 24.9.2019, 19:31) *

Условиями, например if

Вот так?
Код

--lua
local startX, startY, endX, endY = 0, 0, 1280, 720   -- координаты поиска
        local path2 = [["C:\картинка2.bmp"]]                   -- путь к картинке
        local path3 = [["C:\картинка3.bmp"]]                   -- путь к картинке
        local path4 = [["C:\картинка4.bmp"]]                   -- путь к картинке
        local arr, a = findimage (startX, startY, endX, endY, {path2}, 2, 70, 6, 5 )  -- поиск картинки
        hint (a)     -- результат поиска, подсказка в правом нижнем углу
        if  arr then  -- если найдена
            log ("картинка найдена в координатах X= " .. arr[1][1] .. " Y= " .. arr[1][2])
            send 2  -- кликнули
            wait ("2s")    -- ждать секунды
            send 3  -- кликнули
            wait ("2s")    -- ждать секунды
            send 4  -- кликнули
            wait ("2s")    -- ждать секунды
        else
            log ("Картинка.bmp не найдена")
            end

По моему он будет щёлкать кнопки подряд и никакой выборки от найденной картинки не будет...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 24.9.2019, 22:38
Сообщение #11


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2384
Пользователь №: 18.746



Цитата(bumer @ 24.9.2019, 16:42) *
А вот если нужно чтоб в зависимости от найденной картинки, жал разные клевещи, то как организовать исполнение?


Код
init_arr %path(1 1) "C:\картинка2.bmp" "C:\картинка3.bmp" "C:\картинка4.bmp"
init_arr %snd(1 1) 2 3 4

for #i 1 size(%path)
    set #a FindImage (0, 0 1280, 720(%path[#i]) %arr 2 70 6 5 abs)
    if #a > 0
       send %snd[#i]
    end_if
end_for
end_script


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SeregaB
сообщение 24.9.2019, 23:12
Сообщение #12


**

Neophyte
Сообщений: 47
Регистрация: 22.9.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.405



Цитата(Fors1k @ 24.9.2019, 22:38) *

Код
init_arr %path(1 1) "C:\картинка2.bmp" "C:\картинка3.bmp" "C:\картинка4.bmp"
init_arr %snd(1 1) 2 3 4

for #i 1 size(%path)
    set #a FindImage (0, 0 1280, 720(%path[#i]) %arr 2 70 6 5 abs)
    send %snd[#i]
end_for
end_script


Можно пожалуйста пояснить в комментариях каждое действие, я только начал изучать программу, поэтому сложно такие коды читаю.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 24.9.2019, 23:16
Сообщение #13


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2384
Пользователь №: 18.746



Цитата(SeregaB @ 24.9.2019, 23:12) *

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

Код
init_arr %path(1 1) "C:\картинка2.bmp" "C:\картинка3.bmp" "C:\картинка4.bmp" // что искать
init_arr %snd(1 1) 2 3 4 // клавиши

for #i 1 size(%path) // цикл поиска
    set #a FindImage (0, 0 1280, 720(%path[#i]) %arr 2 70 6 5 abs) // поиск каждой картинки
    if #a > 0  // если нашли
       send %snd[#i] // действие, соответствующее найденной картинке
    end_if
end_for
end_script


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 23.4.2024, 10:57
Designed by Nickostyle