|
Помогите освоить LUA |
|
|
|
|
Ответов
sutra |
12.11.2018, 16:22
|
Adept
Сообщений: 923
Регистрация: 10.8.2018 Группа: Пользователи Наличность: 0
Пользователь №: 19.007
|
Теперь про борьбу с рендерингом. Может кому пригодится. Даже используя стандартный Пилотовский findimage соблюдая два нехитрых правила результат поиска становится стабильнее и точнее. 1) На рендеринг (прорисовку) любой картинки влияют соседние с ней ИЗМЕНЯЮЩИЕСЯ объекты. Поэтому захват нужной картинки надо производить по возможности дальше от таких объектов. Например, есть текст, который надо захватить для сравнения с неким оригиналом, и над этим текстом вверху постоянно меняющееся изображение каких-либо объектов. Предположим, что высота символов 12 пикселей. Осуществляйте захват не по всей высоте текста, а сместите верхнюю границу зону захвата на 2-3 (а возможно и больше) пикселя ниже. Грубо говоря скрин будет размером не 40х12, а скажем 40х10. Картинка конечно смотрится неприглядно, но идентифицировать её будет проще, так как подверженные влиянию верхние пиксели мы отбросим, кстати границы объектов всегда наиболее подвержены рендерингу. 2) Сильно может влиять положение рабочего окна, поэтому лучше чтобы рабочее окно всегда находилось на "своём привычном месте", я его устанавливаю при помощи set windowpos ...
Мне на 100% избежать влияния рендеринга удаётся не всегда, но в таких случаях у меня есть 2-3 (ничто не мешает сделать и больше) эталонных файла картинки. Имена файлов эталонов содержат номер события, поэтому все они легко распознаются в соответствии с событием (0001.jpg; 0002-a.jpg; 0002-b.jpg; и т.д.). Размеры файлов варьируются очень сильно, поэтому в подавляющем большинстве случаев, опознание производится по размеру файлов не прибегая к открытию файлов и их сравнению.
Кстати можно хранить содержимое файлов эталонов в памяти, да и сам список файлов тоже. Никаких тормозов в принципе быть не должно, хотя у меня и внешняя программа пашет на ура.
|
|
|
|
Сообщений в этой теме
sutra Помогите освоить LUA 24.10.2018, 18:09 cirus --lua
log "clear" log "mode compact... 25.10.2018, 1:58 DarkMaster Поскольку lua весь на деревьях и размеры массивов ... 25.10.2018, 8:43 DarkMaster Предчувствуя следующий вопрос:
local function lg... 25.10.2018, 8:54 sutra Спасибо большое парни! Оба здорово помогли мне... 25.10.2018, 23:06 DarkMaster
Смысл в том, что это делать уже не надо - оно уже... 26.10.2018, 0:36 sutra Дарк, а есть такая возможность получить некий резу... 26.10.2018, 12:28 DarkMaster
Нет. И подозреваю, что даже между запущенными на ... 26.10.2018, 14:25 WKnight
Теоретически есть. А смысл? 26.10.2018, 14:35 sutra Смысла нет, просто скрипт огромный, хотел частями ... 26.10.2018, 15:53 sutra В башке "месиво" сплошное от всех этих я... 26.10.2018, 16:49 olduo.com
В башке "месиво" сплошное от всех этих ... 27.10.2018, 0:51 DarkMaster
И да и нет. Пока не лезешь в классы и метатаблицы... 27.10.2018, 1:59 Cockney
Да вот только сам по себе луа пустой. Его сфера ... 27.10.2018, 12:44 DarkMaster
Классы этого никак не меняют.
И справляется на с... 27.10.2018, 14:00 Cockney
Классы этого никак не меняют.
И справляется на с... 27.10.2018, 14:48 olduo.com
Ради интереса зашел на одну из вакансий по луа:
... 27.10.2018, 18:17 sutra Во какую тему замутил. А я вот со своим дилетантск... 27.10.2018, 16:09 DarkMaster
Насколько я понял там вообще пофигу ибо линкуется... 27.10.2018, 17:08 Cockney
Начали мы как раз с того, что луа живет за счет ... 10.11.2018, 0:05 sutra Я попробовал и даже простейшую функцию не смог сде... 27.10.2018, 18:24 cirus
Выкладывайте код, поправим.
Для примера:
--lua
--... 27.10.2018, 18:31 sutra Не смог реализовать goto как только не пробовал, д... 27.10.2018, 19:53 cirus
Лучше сразу забудьте про него.
--lua
function pro... 27.10.2018, 19:53 sutra Спасибо. То есть goto не работает?? 27.10.2018, 20:01 cirus
Нет. Он и не нужен.
В луа его вообще нет. Вроде к... 27.10.2018, 20:04 sutra Меня конечно учили в своё время, что goto использо... 27.10.2018, 20:16 DarkMaster
Как правило подобные проблемы говорят о том, что ... 28.10.2018, 2:11 sutra А оператор continue в цикле while есть? 29.10.2018, 0:00 cirus В луа нет continue. 29.10.2018, 0:18 sutra Это очень нехорошо. Если честно, то я не понимаю. ... 29.10.2018, 1:28 DarkMaster while var > 1 do
local result = check_some_pa... 29.10.2018, 4:29 sutra Спасибо Дарк. Но у меня так не получится. Допустим... 29.10.2018, 12:55 sutra Слишком сложный код. никакого линейного выполнения... 29.10.2018, 13:15 sutra Грубо говоря есть определённое количество событий,... 29.10.2018, 13:25 sutra local n = "123.txt"
local f = io.open(... 29.10.2018, 14:41 DarkMaster
А лежит он где? Рядом с ехе пилота? Пилот перезап... 29.10.2018, 14:44 sutra Обычным текстом открывает [[123.txt]]
Минутку, те... 29.10.2018, 15:04 cirus
Скорее всего были какие-то ошибки.
--lua
local n ... 29.10.2018, 15:09 sutra Перегрузил Пилот через прибивалку, всё заработало,... 29.10.2018, 15:17 sutra Понял причину, забыл поставить двойной слеш при ук... 29.10.2018, 15:40 DarkMaster
Не редактируйте код перед тем, как выложить. Ну л... 29.10.2018, 18:00 sutra Я не редактировал. Просто сначала использовал полн... 29.10.2018, 18:21 DarkMaster
это фиксанули буквально пару дней назад 30.10.2018, 5:31 sutra Добрался до файндов. и как и думал ничего у меня н... 31.10.2018, 13:03 sutra И конечно примеры на lua "надёжно" зарыт... 31.10.2018, 13:14 cirus
--lua
local a, c = findimage(0, 0, 1920, 1080... 31.10.2018, 13:29 sutra Спасибо.
Так я и говорю надёжно спрятано. Я случа... 31.10.2018, 13:35 cirus
Когда выйдет полноценная версия пилота на луа, то... 31.10.2018, 13:50 sutra --lua
log "clear" log "mode compact... 31.10.2018, 14:01 cirus Да, в findimage есть баг, если искать на скрине от... 31.10.2018, 14:10 sutra --lua
log "clear" log "mode compact... 31.10.2018, 14:17 cirus --lua
log "clear" log "mode compact... 31.10.2018, 14:23 sutra Спасибо разобрался. Ну в общем тот баг и в lua про... 31.10.2018, 14:43 cirus
--lua
log "clear" log "mode compact... 31.10.2018, 14:57 sutra Спасибо. 31.10.2018, 15:12 DarkMaster
Суть в том, что само тело пилотовских функций оди... 31.10.2018, 19:04 sutra
А получить массив найденных пикселей, где хранятс... 1.11.2018, 12:54 cirus --lua
local a = findcolor("0, 0, 1920, 108... 1.11.2018, 13:09 sutra Спасибо.
А какой самый простой способ в lua убить... 1.11.2018, 13:26 DarkMaster
arr = nil
вы не убили массив. Вы создали новый п... 1.11.2018, 13:44 WKnight Плин, вот так скажешь ваське ченить полезное, и по... 1.11.2018, 13:51 sutra Спасибо. Вывод... лучше спросить, коли с мозгами т... 1.11.2018, 14:20 sutra Всем огромное спасибо, кто потратил своё время на ... 4.11.2018, 18:46 sutra --lua
check=5
checkint=0
for i=1, 10 do
for j=... 8.11.2018, 12:01 cirus
Нет. 8.11.2018, 12:36 DarkMaster Не забывайте области видимости - пишите local при ... 8.11.2018, 17:34 sutra
Спасибо, я не забываю. На примерах просто лень, у... 9.11.2018, 1:59 WKnight А напомните, что именно имеется ввиду. Я как раз р... 9.11.2018, 2:07 sutra Так Cirus показывал на примере моей картинки в тем... 9.11.2018, 2:12 cirus
https://forum.uokit.com/index.php?s=&sh...st... 9.11.2018, 2:19 DarkMaster
1) Глобальные переменные медленные.
2) В луа огра... 9.11.2018, 10:07 WKnight А, я думал может еще чего интересного нашли :) 9.11.2018, 12:48 DarkMaster Я тебе могу предложить убрать костыль по координат... 9.11.2018, 13:02 sutra
Кнайт, мне нравится подход, ЕЩЁ ... Я считаю, что... 9.11.2018, 16:59 WKnight Чет не помню такого. 9.11.2018, 18:28 DarkMaster В приват ща опишу. А то "секретные технологии... 9.11.2018, 18:36 sutra Блин, секретные технологии. Ну у меня тоже есть та... 10.11.2018, 1:16 sutra Фишка в том, что анализируются не изображения, а ф... 10.11.2018, 1:39 sutra Думаю всё это легко можно сделать в lua , но мне п... 10.11.2018, 2:13 cirus
--lua
log "clear" log "mode compact... 10.11.2018, 2:29 DarkMaster В данном случае я бы рекомендовал для начала забыт... 10.11.2018, 13:07 sutra
Ну этот метод я знаю, в принципе неплохой вариант... 10.11.2018, 14:51 sutra
Сорри, не доглядел, действительно, я не знал синт... 10.11.2018, 15:08 DarkMaster Очень неплохо поднимается производительность, если... 10.11.2018, 15:29 sutra Так в том то и фишка, что колор в памяти только-то... 10.11.2018, 15:44 cirus --lua
-- сделать привязку Ctrl+A
local h = workwin... 10.11.2018, 16:25 sutra
Спасибо большое. Век живи и век учись. Я просто п... 10.11.2018, 16:52 cirus
Color, findimage, findcolor, getimage, move, left... 10.11.2018, 17:07 sutra ОК. 10.11.2018, 17:30 sutra Конечно если картинки очень сложные, то спасёт тол... 12.11.2018, 18:38 sutra function FindRGB(addr,len,scrX1,scrY1,fx1,fy1,... 12.11.2018, 23:31 sutra Круто, я так не умею, не знаю как. 13.11.2018, 0:00 sutra Эх, если бы за один присест получить доступ к памя... 13.11.2018, 0:16 DarkMaster
Может быть рассчитан на основе кооридант. Т.е. ег... 13.11.2018, 0:21 sutra Спасибо Дарк. Я не знал про переменные. В Паскале ... 13.11.2018, 0:39 DarkMaster
Это регэкспы. Можно почтиать в regex, но в луа он... 13.11.2018, 0:46 sutra Спасибо на добром слове Дарк. Примерно я понимаю. ... 13.11.2018, 1:01 sutra
А вот это не факт. Каркать не стану, но сдаётся м... 13.11.2018, 1:32
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|