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

3 страниц V  1 2 3 >  
Ответить в эту темуОткрыть новую тему
> Тут будет много глупых и наивных вопросов на разные темы, Без ящика водки никак не разобраться.
BydloScripter
сообщение 17.1.2013, 21:48
Сообщение #1


**

Neophyte
Сообщений: 42
Регистрация: 16.1.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.680
Возраст: 23



Добрый вечер!

Пишу отдельный скрипт для анализа интерфейса, есть куча картинок, нужно их все отыскать на экране, пронумеровать в зависимости от расположения и записать их координаты в пригодном, для использования в других скриптах, виде (желательно массив).
Результатом должно быть что-то типа массива %ResultArray[n, 3] где
%ResultArray[1 1] - X координата
%ResultArray[1 2] - Y координата
%ResultArray[1 3] - порядковый номер

Но возникли проблемы
Вопрос 1:
Как, при поиске большого числа картинок, из FindImage записывать координаты в разные ячейки одного и того же массива, при том что кол-во найденых картинок может отличаться для каждой картинки или вообще быть равным нулю? Можно ли сделать как-то так?:

Код
set #c 1
set #f 1
:startsearch
set $filename #f.bmp
set $b ResultArray[#c]
set $a FindImage (#StartX #StartY #EndX #EndY ($filename) $b)
if $a > 0
set #c #c + $a
set #f #f + 1
goto startsearch
else
set #f #f + 1
goto startsearch
end_if


Далее нужно упорядочить массив по возрастанию X или Y, но как это сделать не заводя отдельную переменную под каждую ячейку массива если использовать нарямую элементы массива в условных операторах нельзя?

Скоро будут ещё вопросы)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 17.1.2013, 21:53
Сообщение #2


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



https://forum.uokit.com/index.php?s=&sh...st&p=167986


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
BydloScripter
сообщение 18.1.2013, 12:16
Сообщение #3


**

Neophyte
Сообщений: 42
Регистрация: 16.1.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.680
Возраст: 23



Спасибо!
Вопрос 2.
Взято с http://uopilot.tati.pro в статье про FindImage
<$a> - переменная, в которую записывается процент точности найденного изображения или количество найденных изображений.
Так что же именно и в каких случаях записавыется в $a?
Если найдено n кортинок то число n?
Если найдена одна картинка то единица или %точности поиска?
Если изображение НЕ найдено то что? (у меня записывалось "-3") это отрицательный процент дефолтной погрешности или ещё что-то?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 18.1.2013, 12:28
Сообщение #4


***********

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



Цитата
Если изображение НЕ найдено то что?

То 0 будет.
Цитата
у меня записывалось "-3"

Отрицательные значения сообщают об ошибке. Значения могут быть от -4 до -1. -3 - это ошибка адреса, если не ошибаюсь.


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


**

Neophyte
Сообщений: 42
Регистрация: 16.1.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.680
Возраст: 23



В каких случаях записывается процент точности найденного изображения?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 18.1.2013, 13:08
Сообщение #6


***********

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



если найдено только одно изображение.


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


**

Neophyte
Сообщений: 42
Регистрация: 16.1.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.680
Возраст: 23



Цитата(DarkMaster @ 18.1.2013, 13:08) *

если найдено только одно изображение.

как я понял, лучше не брать $a за кол-во найденых картинок без дополнительной проверки?)
И как узнать является ли $a процентом точности при одной найденной картинке или это кол-во картинок?
разобрался, size (%crds)


Вопрос 3.
Как задать область поиска как все рабочее окно, то бишь начальные относительные координаты 1 1(или 0 0?), а конечные равны максимальным размерам окна? Есть несколько компов с разным разрешением экрана, соответственно размер окон разный, и нужно чтобы на каждом компе поиск выполнялся во всем окне, при этом геморрой с указанием координат правого нижнего угла зоны поиска нежелателен.
Будут ли координаты X= 9999 Y=9999 восприниматься FindImag'ом корректно?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
artem04321
сообщение 18.1.2013, 14:37
Сообщение #8


**

Neophyte
Сообщений: 33
Регистрация: 4.1.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.627
Возраст: 18



Цитата(BydloScripter @ 18.1.2013, 15:27) *


Вопрос 3.
Как задать область поиска как все рабочее окно, то бишь начальные относительные координаты 1 1, а конечные равны максимальным размерам окна? Есть несколько компов с разным разрешением экрана, соответственно размер окон разный, и нужно чтобы на каждом компе поиск выполнялся во всем окне, при этом геморрой с указанием координат правого нижнего угла зоны поиска нежелателен.
Будут ли координаты X= 9999 Y=9999 восприниматься FindImag'ом корректно?


Используй функцию Get windowpos
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
BydloScripter
сообщение 18.1.2013, 14:43
Сообщение #9


**

Neophyte
Сообщений: 42
Регистрация: 16.1.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.680
Возраст: 23



Цитата(artem04321 @ 18.1.2013, 14:37) *

Используй функцию Get windowpos

Даная функция игнорирует рамку винды? и что будет считаться координатами окна? (логично предположить что координаты левой верхней точки, но тут и возник вопрос с учётом рамки винды или без)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
artem04321
сообщение 18.1.2013, 14:47
Сообщение #10


**

Neophyte
Сообщений: 33
Регистрация: 4.1.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.627
Возраст: 18



Цитата(BydloScripter @ 18.1.2013, 15:43) *

Даная функция игнорирует рамку винды? и что будет считаться координатами окна? (логично предположить что координаты левой верхней точки, но тут и возник вопрос с учётом рамки винды или без)

эта функция показывает координаты положения окна и его размеры
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 18.1.2013, 14:48
Сообщение #11


***********

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



Цитата
разобрался, size (%crds)

можно не заморачиваться и использовать напрямую $a. По умолчанию минимальный процент совпадения 80. Я сомневаюсь, что вы найдете более 79 изображений.
Цитата
Даная функция игнорирует рамку винды?

Да
Цитата
что будет считаться координатами окна? (логично предположить что координаты левой верхней точки

Верно
Цитата
с учётом рамки винды или без

Без


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


**

Neophyte
Сообщений: 42
Регистрация: 16.1.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.680
Возраст: 23



Цитата(DarkMaster @ 18.1.2013, 14:48) *

можно не заморачиваться и использовать напрямую $a. По умолчанию минимальный процент совпадения 80. Я сомневаюсь, что вы найдете более 79 изображений.

Смотря для каких задач, для распознания текста, например, может и не хватить 79)
может когда-нибудь авторепост игрового чата в аську захочу запилить.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
artem04321
сообщение 18.1.2013, 15:40
Сообщение #13


**

Neophyte
Сообщений: 33
Регистрация: 4.1.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.627
Возраст: 18



Цитата(BydloScripter @ 18.1.2013, 16:00) *

Смотря для каких задач, для распознания текста, например, может и не хватить 79)
может когда-нибудь авторепост игрового чата в аську захочу запилить.

Можн зделать проверку по массиву (тольк после каждого поиска придется массив уничтожать)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
BydloScripter
сообщение 18.1.2013, 16:09
Сообщение #14


**

Neophyte
Сообщений: 42
Регистрация: 16.1.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.680
Возраст: 23



Цитата(artem04321 @ 18.1.2013, 15:40) *

Можн зделать проверку по массиву (тольк после каждого поиска придется массив уничтожать)

как я понял, при поиске большого числа картинок (алфавит) этот массив и так легче делать одноразовым, а полученные координаты записывать в другой
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
BydloScripter
сообщение 18.1.2013, 18:24
Сообщение #15


**

Neophyte
Сообщений: 42
Регистрация: 16.1.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.680
Возраст: 23



Цитата(Zeleax @ 17.1.2013, 21:53) *

Цитата
Код
if %m[#j 1] < #min

Цитата
Учтите, что элементы массивов нельзя напрямую использовать в условный операторах:
if charposx <> %arr [50 1]

(с) Помощь по языку скриптов
(IMG:style_emoticons/default/blink.gif) (IMG:style_emoticons/default/blink.gif) (IMG:style_emoticons/default/blink.gif) где правда?

Следующий вопрос:
можно ли задавать имя переменной другими переменными?
Пример:
Код
set $y lol
set $z shto
set #number 1
set $x$y$z#number ololo


в итоге получится переменная $xlolshto1 со значением ololo или нет?

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


***********

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



Было действительно так. Но пилот продолжает развиваться. Сейчас можно использовать напрямую.


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


**

Neophyte
Сообщений: 33
Регистрация: 4.1.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.627
Возраст: 18



Цитата(BydloScripter @ 18.1.2013, 19:24) *



Следующий вопрос:
можно ли задавать имя переменной другими переменными?
Пример:
Код
set $y lol
set $z shto
set #number 1
set $x$y$z#number ololo


в итоге получится переменная $xlolshto1 со значением ololo или нет?

незнаю как должно быть но не работает.


нет, название переменной изменить нельзя

но можно использовать вместо этого массив как переменную
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 18.1.2013, 19:20
Сообщение #18


***********

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



насколько помню есть такая фича:
set $asd 1
set %arr [ 1 1 ] $a
set %arr [ 1 2 ] sd
msg %arr [ 1 ]


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


**

Neophyte
Сообщений: 33
Регистрация: 4.1.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.627
Возраст: 18



Цитата(DarkMaster @ 18.1.2013, 20:20) *

насколько помню есть такая фича:
set $asd 1
set %arr [ 1 1 ] $a
set %arr [ 1 2 ] sd
msg %arr [ 1 ]

$asd Выведет...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 18.1.2013, 19:32
Сообщение #20


***********

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



Кнайт когда-то писал. Искать надо.


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

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

 

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