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

11 страниц V « < 8 9 10 11 >  
Ответить в эту темуОткрыть новую тему
> Поиск числа с помощью Findimage, Готовый скрипт
xolost
сообщение 27.2.2019, 11:53
Сообщение #181


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Не совсем понял почему в скрипте на пилоте так много букв!?

Код

set #s 1
for #step 0 9
    // Поиск изображений
    set $check findimage (0 0 1280 1024 (C:\цифры\#step$bmp) %crds 2 100 -1)
    // Проверка на наличие
    if $check > 0
        set #size size (%crds)
        for #i 1 #size
            // Запись в массив %m[#s 1] числа, %m[#s 2]координаты
            set %m[#s 2] #step
            set %m[#s 1] %crds[#i 1]
            set #s #s + 1
        end_for
    end_if
end_for

// Присваиваем переменной размер массива
set #n size (%m)
// Сортируем массив
for #i 1 #n
    set #min %m[#i 1]
    set #imin #i
    set #ii #i + 1
    for #j #ii #n
        if %m[#j 1] < #min
            set #min %m[#j 1]
            set #imin #j
        end_if
    end_for
    // меняем местами минимальный элемент с текущим, используя промежуточную #z
    set #z %m[#i 1]
    set %m[#i 1] %m[#imin 1]
    set %m[#imin 1] #z
    set #z %m[#i 2]
    set %m[#i 2] %m[#imin 2]
    set %m[#imin 2] #z
end_for
// Соберем все элементы в одну текстовую строку
set $s // пустая строка
for #i 1 #n
    set $s $s%m[#i 2] //(X= %m[#i 1]) // добавляем каждый элемент в конец строки
end_for
set size ( %m )
set size ( %crds )




Пользуюсь этим скриптом по сей день. Написал его по-моему Дарк или Зилекс. Лет 10 назад.
Отлично работает.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 27.2.2019, 12:16
Сообщение #182


**********

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



Цитата
Не совсем понял почему в скрипте на пилоте так много букв!?

Если искать 1 число или слово, то можно и так. Можно даже короче написать с учётом что уже давно появилась сортировка массивов. На луа этот скрипт вообще несколько строчек займёт.
Скрипты из первого поста позволяют найти несколько чисел/слов за 1 поиск.


DarkMaster, функцию надо бы подправить, там же создавался глобальный массив:
Цитата
массив НЕ локальная переменная tmpOtNiAotNiaorNCOsnaOT (ограничено пилотом).
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 27.2.2019, 12:47
Сообщение #183


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Цитата(cirus @ 27.2.2019, 12:16) *

Скрипты из первого поста позволяют найти несколько чисел/слов за 1 поиск.

Замечательно, но зачем это нужно?
Вот есть функция которая ищет одно число.
Задаем зону для поиска - нашли.
Нужно ещё число найти другое? задаем диапазон поиска для другого числа.
В моем случае я обычно делал - ищу картинку, рядом с которой это число всегда, и от неё строю диапазон. Ну и всё, 1 функция для любого кол-во чисел.
Просто не вижу практического смысла в таком объеме, который ничего и не выигрывает по-сути.

Про сортировку да, я когда начал питон изучать, узнал что сщуестует сортировка. 1 строчкой за 0.00001 секунду тысячи данных. В пилоте на тот же объем куча строчек и несколько минут работы скрипта. Было грустно очень
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 19.5.2019, 17:17
Сообщение #184


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 18.346
Возраст: 25



Встроил в скрипт часть кода для проверки баланса на персах, но есть ошибки в его работе... Когда этот код работает сам по себе то нормально распознает значения. Но если его встроить то сперва работает нормально, но спустя некоторое время дает неверные значение. Если число баланса состоит равно или больше из трех цифр то все четко, но если число менее 2х цифр он дает косяк и приписывает есче одну цифру с воздуха, хотя сразу работал корректно. Имена переменных и "буквы" счетчиков проверял, они не пересекаются...не знаю в чем проблема, может есть какие решения?
Код

log clear
log mode compact
log open 0 630 200 150
//---
set #obsciy 0  // переменная для подсчета общего баланса
set #schet 1 // ВКЛ ВЫКЛ проверить баланс 1 - проверить, 0 - не проверять
//---
if  #schet = 1
    set #balans 0 //переменная для подсчета(сброса) текущего баланса
    init_arr %image 0 1 2 3 4 5 6 7 8 9  // имена картинок
    set $path "D:\_UOPilot\newimage\balans\"    // путь к картинкам
    init_arr %coord 136, 145 176, 153   // координаты "кошелька" для findimage
    //размер цифр 6х8
    set #stepX (%coord [3] - %coord [1]) / 6   // шаг по X, ширина одной цифры-картинки 6 пикселей(отступа между ими нет)
    set #stepY (%coord [4] - %coord [2])    // шаг по Y  не нужен т.к. одна стока
    set #z 0
    for #q 1 size(%image)   // поиск картинок
        set #bb findimage(%coord [1] %coord [2] %coord [3] %coord [4] ($path%image[#q].bmp) %arr 2 90 -1 3)
        if  #bb > 0
            for #w 1 size(%arr)
                set #z #z + 1
                init_arr %temp (#z) %arr [#w 1] %arr [#w 2] %image[#q] // добавить в массив координаты и имя картинки
            end_for
        end_if
    end_for

    for #q 1 #z  // подсчёт позиции картинки на поле
        set #x (%temp [#q 1] - %coord [1]) / #stepX + 1
        set #y (%temp [#q 2] - %coord [2]) / #stepY + 1
        set %field [#y #x] %temp [#q 3]  // имя картинки в нужный элемент массива
    end_for
    set #balans %field [1] //вывести текущее состояние счета
    set #obsciy #obsciy + #balans //подсчет общего счета
    log На счету #balans баленов.
    log ОБЩИЙ БАЛАНС: #obsciy
end_if
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 19.5.2019, 17:32
Сообщение #185


**********

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



Перед этой строкой:
Цитата
for #q 1 #z // подсчёт позиции картинки на поле

Код
set size(%field) // удалить массив 

Скорее всего, лишние цифры это то что осталось от прошлого числа. К примеру, сначала нашли 123, потом нашли 45, в итоге выдаст 453, т. е. 3 это то что осталось в массиве от 123
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Automaton
сообщение 19.12.2019, 15:38
Сообщение #186


**

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



Cirus, настроил в вашем варианте очень маленький диапазон поиска цифр: init_arr %GetImage (1) 949 269 1004 289 а выдал он цифр во всплывающем окошке, гораздо больше чем там в действительности:
скрин области и результата

Картинки с цифрами 5х8 пикселей, настройки в скрипте такие:
Настройки скрипта

set linedelay 0
init_arr %picture 0 1 2 3 4 5 6 7 8 9 // имена картинок (0.bmp, 1.bmp и т. д.)
init_arr %symbol 0 1 2 3 4 5 6 7 8 9 // символ соответствующий имени, т. е. картинка 0.bmp соответствует 0
set $path "C:\UO Pilot" // папка с картинками
set $bmp "*.bmp*" // формат картинок
set #deltaY 8 // расстояние между строками (можно указать высоту картинок)
set #deltaspace 12 // допустимое расстояние между цифрами, иначе будет считаться что это не одно число
set #accuracy 90 // точность поиска для Findimage
set #deviation 6 // погрешность оттенка для Findimage
set #wait 2 // пауза между поиском картинок, если указать меньше искать будет быстрее, но нагрузит процессор
set #timeproc 2000 // время (в мсек) для поиска картинок, если 0 не выйдет из процедуры пока не найдётся хотя бы 1 картинка
set #repeatimage 2 // допустимое смещение координат, если используется несколько видов одной картинки
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
apaul
сообщение 19.9.2021, 20:52
Сообщение #187


**

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



Добрый день. А можно попросить боевой рабочий пример использования этого скрипта в варианте lua?
А то что-то с циферками из блокнота не выходит - плюется в меня рантайм-еррором (IMG:style_emoticons/default/sad.gif).
На всякий случай цепляю тестовый шот из блокнота и вырезанные оттуда циферки.
Прикрепленный файл  test.zip ( 43,35 килобайт ) Кол-во скачиваний: 410
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 22.9.2021, 15:37
Сообщение #188


***********

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



Можно ваш вызов увидеть?


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


**

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



Цитата(DarkMaster @ 22.9.2021, 15:37) *

Можно ваш вызов увидеть?

Не дает мне покоя столь удобная функция, уж очень не охота изобретать свой велосипед (IMG:style_emoticons/default/unsure.gif)
Падать вроде перестала, но и работать как дОлжно отказывается. Вот такой вызов:
Код

local sy = {
        ["0"] = {"0a"},
        ["1"] = {"1a"},
    }
local pa="test\\"
local cr={674, 421, 709, 443}
local t = imageToString. get{symbols=sy,path=pa,crds=cr,accuracy=80,deviation=8,deltaSpace=1,toNumber=0,d
urationMax=0}
log(#t, t[1][1])

На экране в заданных координатах присутствует цифра 10. Но функция упорно отказывается искать более 1 символа. Если в symbols лежат обе цифры - ищется первая "1", если убираем из symbols "1", то ищется "0". Как уговорить его искать все цифры, дабы увидеть на выходе "10"? Что я упустил?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
pioner
сообщение 16.11.2021, 11:41
Сообщение #190


*

Registred
Сообщений: 3
Регистрация: 9.11.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 20.124
Возраст: 32



Добрый день. Не могу разобраться с пробелами- в result111.txt и в лог записывает слово и цифру слитно. Как разбить, помогите, пожалуйста!

Разобрался, ссори
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 10.4.2022, 9:37
Сообщение #191


***********

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



Lua версия скрипта обновлена до версии 1.0.8


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


*

Registred
Сообщений: 1
Регистрация: 21.4.2022
Группа: Пользователи
Наличность: 0
Пользователь №: 20.241
Возраст: 25



Цитата(DarkMaster @ 10.4.2022, 9:37) *

Lua версия скрипта обновлена до версии 1.0.8

Не понимаю, почему у меня не работает. Зависает на 21 строчке. Функция findcolor тоже не работает(


Эскизы прикрепленных изображений
Прикрепленное изображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.4.2022, 22:43
Сообщение #193


***********

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



Я обновлял версию для луа. У вас вопрос версии для старого синтаксиса судя по скриншоту. Это два разных скрипта (IMG:style_emoticons/default/smile.gif) Вас какой именно интересует?


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


***********

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



Lua версия обновлена.
1.0.9
Добавлено: установление приоритетов символов при удалении дублей. 4 и 1 - будет удалено 1, O и Q удалено O и т.д.
Добавлено: пример вызова, пример для сбора табличных данных.
Фикс: исправлены проблемы findimage пилота при поиске в уже загруженном изображении (getimage/loadimage)


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


********

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



в другом решении видел фичу обучения распознавания. У нас не планируется подобное ? С дублями может помочь ну и при большом наборе обучающей выборки (а ее можно делать автоматически) точность хорошая будет.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 24.11.2022, 17:04
Сообщение #196


***********

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



Цитата
У нас не планируется подобное ?

Планы были и есть теоретически есть, со временем проблемы. Даже продумывал, как все это реализовать красиво. Были мысли прикручивать OCR. Там проблемы откроваенные. 10 раз норм наспознает, на 11 его переклинит и ерунду дикую выдаст. Причем результат может быть иным от, например, фона где-то в незначащем куске. Ну и OCR откровенный тормоз. Тут даже на старом имидже намного быстрее.


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


********

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



Цитата(DarkMaster @ 24.11.2022, 17:04) *

Планы были и есть теоретически есть, со временем проблемы. Даже продумывал, как все это реализовать красиво. Были мысли прикручивать OCR. Там проблемы откроваенные. 10 раз норм наспознает, на 11 его переклинит и ерунду дикую выдаст. Причем результат может быть иным от, например, фона где-то в незначащем куске. Ну и OCR откровенный тормоз. Тут даже на старом имидже намного быстрее.



ты видимо про какое-то готовое решение, а я про самописное. готовое слишком унифицировано, поэтому и медленно. а своя поделка - внутри простой статистический аппарат, который +- быстро по статистике определит символ на любом почти фоне
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 25.11.2022, 5:43
Сообщение #198


***********

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



Я про оба варианта. OCR имхо не имеет существенного смысла ввиду нестабильности. Мой вариант поэтом жив и боюсь будет жить еще очень долго. Вопрос во времени для развития.


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


*

Registred
Сообщений: 4
Регистрация: 11.1.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 19.854
Возраст: 28



Пробую скрипт на языке пилота
Не могу понять как указать регион поиска чисел.
Почему- то всегда ищет по всему окну неважно какой регион поиска укажу.
У меня список из 14 чисел, и всегда выдает все 14.

init_arr %GetImage (1) 33, 218 133, 271

Поиграв немного с цифрами, в итоге нашел нужные мне координаты для одной строки. Координаты по X правильно работают, а вот по Y вообще минусовой пришлось указать (и то только стартовый указал, а второй оставил 0). Не совсем понятно почему так
init_arr %GetImage (1) 40, -1100 115, 0
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.8.2023, 17:49
Сообщение #200


***********

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



минусовые бывают при нескольких мониторах.


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

11 страниц V « < 8 9 10 11 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

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