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

35 страниц V « < 2 3 4 5 6 > »   
Ответить в эту темуОткрыть новую тему
> Помогите освоить LUA
WKnight
сообщение 1.11.2018, 13:51
Сообщение #61


********

Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006
Группа: Пользователи
Наличность: 0
Пользователь №: 4.688



Цитата
local a = findcolor("0, 0, 1920, 1080, 1, 1, 7223552, 2")
Плин, вот так скажешь ваське ченить полезное, и потом с полной уверенностью считаешь, что все это знают...

arr, err = findimage(10, 20, 1020, 810, {"C:\\tmp\\image.bmp"}, 2)
arr, err = findcolor(10, 20, 1040, 810, {"r(255)"}, 2, -1, "abs")
только цвета задаются строкой и в старом формате, но обязательно в фигурных скобках, т.е. в таблице луа.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 1.11.2018, 14:20
Сообщение #62


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Спасибо. Вывод... лучше спросить, коли с мозгами туго.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 4.11.2018, 18:46
Сообщение #63


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Всем огромное спасибо, кто потратил своё время на моё обучение. Не стал дожидаться доводки до ума файндов и соорудил временную конструкцию, но даже она дала отличный результат. Переделал блок распознавания чисел в тексте.
Хочу просто поделиться результатами:
set timer3
set #tmp findcolor (688 639 825 639 1 1 (R(0-255)) %tmp)
set %tmp[139 1] #HandleWorkWindow
save_array %tmp "a:\_find.txt" // запись на RAM диск для считывания в lua
set timer4
start_script 8 wait // скрипт на lua
set #time1 timer3 // время выполнения 36-49 тыс. секунды (раньше было 360-800 тыс.)
set #time2 timer4 // время выполнения 16-26 тыс. секунды

Раньше время варьировалось в зависимости от количества распознаваемых цифр (требовалось около 0,1 сек. на цифру). Сейчас всё мгновенно, время выполнения - чистый рэндом и не зависит от количества распознаваемых символов. Грубо говоря старт и выполнение скрипта на lua требует не более 25 тысячных секунды.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 8.11.2018, 12:01
Сообщение #64


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



--lua
check=5
checkint=0
for i=1, 10 do
for j=1, 10 do
if j > check then
checkint = 1
break
end
end
if checkint == 1 then
break
end
end

Поправьте меня если я опять чего-то напутал. Другого варианта прерывания циклов нет? Уровень прерывания всегда равен 1? break 2 - недопустимая конструкция?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 8.11.2018, 12:36
Сообщение #65


**********

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



Цитата
Другого варианта прерывания циклов нет?

Нет.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 8.11.2018, 17:34
Сообщение #66


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27725
Пользователь №: 11.279



Не забывайте области видимости - пишите local при объявлении переменных.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 9.11.2018, 1:59
Сообщение #67


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Цитата
Не забывайте области видимости

Спасибо, я не забываю. На примерах просто лень, учту, буду локальными объявлять, хотя вроде говорили, что только текущий скрипт видит.
Кстати, тестанул свой обработчик памяти, на 170 строках, при анализе вертикальной зоны, получились те же 3 сотых, то есть никакого реального ускорения нет, время как у повторного вызова функции обработки изображений. Если по вертикали немного пикселей, то всё супер. Ну может Кнайт доделает финды.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WKnight
сообщение 9.11.2018, 2:07
Сообщение #68


********

Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006
Группа: Пользователи
Наличность: 0
Пользователь №: 4.688



Цитата
доделает финды
А напомните, что именно имеется ввиду. Я как раз разломал финдимидж, думал переписать, но похоже это надолго, чето он не хочет переписываться.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 9.11.2018, 2:12
Сообщение #69


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Так Cirus показывал на примере моей картинки в теме по Пилоту.

На 10-й страничке.

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


**********

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



Цитата
А напомните, что именно имеется ввиду.

https://forum.uokit.com/index.php?s=&sh...st&p=428122
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.11.2018, 10:07
Сообщение #71


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27725
Пользователь №: 11.279



Цитата
Спасибо, я не забываю. На примерах просто лень, учту, буду локальными объявлять, хотя вроде говорили, что только текущий скрипт видит.

1) Глобальные переменные медленные.
2) В луа ограничение на 63 upvalue, что может потом привести к внезапоному рефакторингу.
3) Учитывая, что в луа все находится в таблице, то подозреваю, что добавление в верхний уровень таблицы ключей может замедлить работу скрипта в целом, если они добавлены не в хвост.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WKnight
сообщение 9.11.2018, 12:48
Сообщение #72


********

Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006
Группа: Пользователи
Наличность: 0
Пользователь №: 4.688



Цитата
Так Cirus показывал
А, я думал может еще чего интересного нашли (IMG:style_emoticons/default/smile.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.11.2018, 13:02
Сообщение #73


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27725
Пользователь №: 11.279



Я тебе могу предложить убрать костыль по координатам поиска в финдимидже. Там, если ты забыл первый пиксель пляшет и область берется больше, потом результат фильтруется.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 9.11.2018, 16:59
Сообщение #74


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Цитата
А, я думал может еще чего интересного нашли

Кнайт, мне нравится подход, ЕЩЁ ... Я считаю, что хвататет глюков.
Ты про findcolor не забывай, на мой взгляд он поважнее будет имиджа. Буду повторяться.

ГЛЮК № 1 !! Даже скажу где искать. При поиске в памяти колор путает ОРДИНАТУ поиска.
Тестовая картинка проста до безобразия, 20 строк чёрного цвета (0), далее 60 белого (16777215), потом изображение.

set %pic GetImage (0 0 500 500)
set #err findcolor (100 420 100 420 1 1 (0-16777215) %arr %pic[1 1])
save_array %arr "C:\TMP\_memory.txt" // результат 100 0 0
set $b deleteimage(%pic[1 1])
end_script

То есть, потерял ординату, цвет получили из нулевой ординаты
Меняем область, смещая вниз на 30 пикселей.

set %pic GetImage (0 30 500 500)

Результат массива 100 0 16777215 , т.е. опять потерял ординату и вернул цвет из нулевой ординаты.


ГЛЮК № 2 !! Это в lua. Тестовая картинка та же.

--lua
log "clear"
local arr, err = findcolor(100, 0, 199, 39, "(0)", 2)
log(arr, err) -- результат nil 2000
--endlua

Хотя бы ищет верно 100*20=2000

--lua
log "clear"
local arr, err = findcolor(100, 0, 199, 39, "{r(0)}", 2)
log(arr, err) -- результат nil 0
--endlua

При использовании RGB совсем не ищет. А также НЕ ВОЗВРАЩАЕТ массив.

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WKnight
сообщение 9.11.2018, 18:28
Сообщение #75


********

Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006
Группа: Пользователи
Наличность: 0
Пользователь №: 4.688



Цитата
область берется больше,
Чет не помню такого.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.11.2018, 18:36
Сообщение #76


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27725
Пользователь №: 11.279



В приват ща опишу. А то "секретные технологии" палить не хочу)


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 10.11.2018, 0:05
Сообщение #77


********

Master
Сообщений: 1.395
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 21064
Пользователь №: 16.156



Цитата

Ну собственно ответ выше. Да и как бы начали с того, что это встраиваемый язык. Встраивать то его тоже надо =) А вот что там классы или не классы суть не важно.


Начали мы как раз с того, что луа живет за счет общепринятых фич, а не собственных. И удобство его как языка ничем не выделяется среди других встраиваемых.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 10.11.2018, 1:16
Сообщение #78


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Блин, секретные технологии. Ну у меня тоже есть такие. Конечно не так универсально, но у меня работает как часы собственный findimage. Конструкция Exec ... пока работает внешняя программа, Пилот не успевает добраться до результатов её работы, потому что конструкция ExecAndWait выполняется всего 2 сотых секунды. Ищется картинка размером 500х26 среди почти 900 файлов эталонов. Результат пишется в файл сценария который может менять ход игры.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 10.11.2018, 1:39
Сообщение #79


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Фишка в том, что анализируются не изображения, а файлы. Картинки в формате jpg с качеством 90% (чтобы был больше разброс по размеру файлов). Считывание имён и размеров без открытия самих файлов происходит практически мгновенно. Одинаковых по размеру не так много, вот только они и сравниваются, если отличаются, то обычно сразу же на первых байтах. Главный секрет как сделать так, чтобы картинки не "плавали от рендеринга" и всегда получались идентичными. Но это отдельная тема.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 10.11.2018, 2:13
Сообщение #80


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Думаю всё это легко можно сделать в lua , но мне просто лень переделывать и так всё чудно работает.

Надо было конечно вообще сделать 100% качество jpg, тогда думаю вообще одинаковых бы не встречалось, но опять же лень по новой коллекцию эталонов делать, скорости хватает.

Ха, в lua. Я не знаю как там получить список файлов.

Стыдно признаться, но всё это сделал на убогом 32-х разрядном делфи образца 1999 года. Не думал, что придётся программировать спустя столько лет. Си выучить не получилось, в 90-е было не до этого, надо было семью кормить.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

35 страниц V « < 2 3 4 5 6 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

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