Post by BotsOFF on Jun 8, 2020 10:55:46 GMT
Когда вы пишете скрипт на своем устройстве, то все отладки, исправления и изменения, вы делаете для нормальной работы скрипта на вашем устройстве.
Если запустить ваш отлаженный скрипт на другом устройстве, то он может работать далеко не как у вас.
Почему скрипт работает медленно или даже с ошибками на одном телефоне, и без ошибок и зависаний на другом?
Проблема с телефоном, нужен более современный аппарат только для корректной работы вашего скрипта?
Конечно, нет. Благодаря оптимизации скриптов, можно добиться одинаковой работы на большинстве телефонах.
Принцип действий AnkuLua:
Действия Ankulua можно условно поделить на три шага:
Функции распознавания изображения можно тоже условно поделить на три шага:
Изменение размера изображения является одним из основных факторов использования памяти.
Например, разрешение по ширине одного телефона - 2560, другого - 640.
Для параметра CompareDimension установлено значение 2560. Это означает, что размер каждого снимка экрана будет изменен до 2560 для распознавания изображения, даже на телефоне с 640.
Скорее всего скрипт не сможет плавно работать на обоих телефонах.
Распознавание изображений на третьем шаге занимает больше всего времени.
Но можно его уменьшить, сделав что-то на первом и втором шагах.
Оптимизация распознавания изображений:
Настраиваем правильно CompareDimension
Наиболее простой способ оптимизации скрипта - настройка правильного CompareDimension.
Поскольку на большинстве устройств, разрешения по ширине кратны 320 или 640, рекомендуется использовать именно их.
Установка этих чисел в CompareDimension может сделать распознавание изображений более четким и быстрым, что повлияет на скорость и правильность.
Обычно устанавливается значение 640 или 1280. 320 может быть слишком мало для современных устройств.
Но...
Нужен ли специальный телефон с такими разрешениями или настройки эмулятора на такое разрешение для разработки сценариев? Конечно нет.
Можно использовать программное обеспечение для изменения размеров изображений.
Для ПК можно использовать conver от imagemagick.
В архиве есть исполняемый файл и bat-файл. Ссылка для скачивания resize.zip.
Извлекаем архив resize.zip в папку со скриптом.
Запуск файла resize.bat делаем из командной строки Windows. Файл имеет три параметра:
Первый - процент изменения размера
Второй - каталог с оригинальными изображениями
Третий - каталог для измененных изображений
Для примера, следующая команда сократит вдвое (50%) все изображения в папке image.2560 и сохранит их в папку image.1280.
Также можно использовать следующий скрипт для смены разрешений и проверки результата.
Примечание: изменения касаются только параметра CompareDimension. Параметр ScriptDimension изменять не нужно!
Используем области
Если для распознавания не использовать конкретные области, то AnkuLua будет работать со всем экраном.
Чем меньше область для распознавания, тем быстрее работает скрипт.
Примечание: Значение области соответствует ScriptDimension. В примере ниже, область lowerRight это нижняя правая четверть экрана.
С оптимизацией скриптов, они будут работать быстро и правильно даже на низкопроизводительных устройствах.
[Next]: To be continued...
[Назад]: Компиляция и шифрование скриптов
[Главная]: AnkuLua. Введение
Если запустить ваш отлаженный скрипт на другом устройстве, то он может работать далеко не как у вас.
Почему скрипт работает медленно или даже с ошибками на одном телефоне, и без ошибок и зависаний на другом?
Проблема с телефоном, нужен более современный аппарат только для корректной работы вашего скрипта?
Конечно, нет. Благодаря оптимизации скриптов, можно добиться одинаковой работы на большинстве телефонах.
Принцип действий AnkuLua:
Действия Ankulua можно условно поделить на три шага:
- делаем снимок экрана
- распознаем изображение
- совершаем действие
Функции распознавания изображения можно тоже условно поделить на три шага:
- изменение размера текущего изображения в соответствии со значением Settings:setCompareDimension()
- обрезка изображения по области с помощью setROI или объектов региона. В противном случае используется все изображение.
- распознавание изображения из шага 2
Изменение размера изображения является одним из основных факторов использования памяти.
Например, разрешение по ширине одного телефона - 2560, другого - 640.
Для параметра CompareDimension установлено значение 2560. Это означает, что размер каждого снимка экрана будет изменен до 2560 для распознавания изображения, даже на телефоне с 640.
Скорее всего скрипт не сможет плавно работать на обоих телефонах.
Распознавание изображений на третьем шаге занимает больше всего времени.
Но можно его уменьшить, сделав что-то на первом и втором шагах.
Оптимизация распознавания изображений:
Настраиваем правильно CompareDimension
Наиболее простой способ оптимизации скрипта - настройка правильного CompareDimension.
Поскольку на большинстве устройств, разрешения по ширине кратны 320 или 640, рекомендуется использовать именно их.
Установка этих чисел в CompareDimension может сделать распознавание изображений более четким и быстрым, что повлияет на скорость и правильность.
Обычно устанавливается значение 640 или 1280. 320 может быть слишком мало для современных устройств.
Но...
Нужен ли специальный телефон с такими разрешениями или настройки эмулятора на такое разрешение для разработки сценариев? Конечно нет.
Можно использовать программное обеспечение для изменения размеров изображений.
Для ПК можно использовать conver от imagemagick.
В архиве есть исполняемый файл и bat-файл. Ссылка для скачивания resize.zip.
Извлекаем архив resize.zip в папку со скриптом.
Запуск файла resize.bat делаем из командной строки Windows. Файл имеет три параметра:
Первый - процент изменения размера
Второй - каталог с оригинальными изображениями
Третий - каталог для измененных изображений
Для примера, следующая команда сократит вдвое (50%) все изображения в папке image.2560 и сохранит их в папку image.1280.
resize.bat 50 image.2560 image.1280
Также можно использовать следующий скрипт для смены разрешений и проверки результата.
resolution = 1280 -- единственный параметр, который нужно изменить
Settings:setCompareDimension(true, resolution)
localPath = scriptPath()
setImagePath(localPath.."image."..resolution.."/")
Примечание: изменения касаются только параметра CompareDimension. Параметр ScriptDimension изменять не нужно!
Используем области
Если для распознавания не использовать конкретные области, то AnkuLua будет работать со всем экраном.
Чем меньше область для распознавания, тем быстрее работает скрипт.
Примечание: Значение области соответствует ScriptDimension. В примере ниже, область lowerRight это нижняя правая четверть экрана.
Settings:setCompareDimension(true, 1280)
Settings:setScriptDimension(true, 2560)
lowerRight = Region(1280, 800, 1280, 800) -- значения (x+w) или (y+h) больше чем разрешения экрана. AnkuLua всегда использует максимальные значения экрана.
С оптимизацией скриптов, они будут работать быстро и правильно даже на низкопроизводительных устройствах.
[Next]: To be continued...
[Назад]: Компиляция и шифрование скриптов
[Главная]: AnkuLua. Введение