|
|
|
Помогите освоить LUA |
|
|
WKnight |
1.11.2018, 13:51
|
Разработчик 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") только цвета задаются строкой и в старом формате, но обязательно в фигурных скобках, т.е. в таблице луа.
|
|
|
|
sutra |
9.11.2018, 1:59
|
Adept
Сообщений: 923
Регистрация: 10.8.2018 Группа: Пользователи Наличность: 0
Пользователь №: 19.007
|
Цитата Не забывайте области видимости Спасибо, я не забываю. На примерах просто лень, учту, буду локальными объявлять, хотя вроде говорили, что только текущий скрипт видит. Кстати, тестанул свой обработчик памяти, на 170 строках, при анализе вертикальной зоны, получились те же 3 сотых, то есть никакого реального ускорения нет, время как у повторного вызова функции обработки изображений. Если по вертикали немного пикселей, то всё супер. Ну может Кнайт доделает финды.
|
|
|
|
cirus |
9.11.2018, 2:19
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26745
Пользователь №: 16.971
Возраст: 29
|
|
|
|
|
DarkMaster |
9.11.2018, 10:07
|
Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27725
Пользователь №: 11.279
|
Цитата Спасибо, я не забываю. На примерах просто лень, учту, буду локальными объявлять, хотя вроде говорили, что только текущий скрипт видит. 1) Глобальные переменные медленные. 2) В луа ограничение на 63 upvalue, что может потом привести к внезапоному рефакторингу. 3) Учитывая, что в луа все находится в таблице, то подозреваю, что добавление в верхний уровень таблицы ключей может замедлить работу скрипта в целом, если они добавлены не в хвост.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
sutra |
9.11.2018, 16:59
|
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 совсем не ищет. А также НЕ ВОЗВРАЩАЕТ массив.
|
|
|
|
sutra |
10.11.2018, 2:13
|
Adept
Сообщений: 923
Регистрация: 10.8.2018 Группа: Пользователи Наличность: 0
Пользователь №: 19.007
|
Думаю всё это легко можно сделать в lua , но мне просто лень переделывать и так всё чудно работает.
Надо было конечно вообще сделать 100% качество jpg, тогда думаю вообще одинаковых бы не встречалось, но опять же лень по новой коллекцию эталонов делать, скорости хватает.
Ха, в lua. Я не знаю как там получить список файлов.
Стыдно признаться, но всё это сделал на убогом 32-х разрядном делфи образца 1999 года. Не думал, что придётся программировать спустя столько лет. Си выучить не получилось, в 90-е было не до этого, надо было семью кормить.
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|