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

7 страниц V < 1 2 3 4 > »   
Ответить в эту темуОткрыть новую тему
> Сценарий поиска нескольких ресурсов, С интерфейсом
Cooll
сообщение 8.6.2012, 9:52
Сообщение #21


***

Novice
Сообщений: 54
Регистрация: 16.5.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.964
Возраст: 15



КОД

set $path C:\Users\Евгений\Desktop\images\
set $startX 145
set $startY 224
set $endX 270
set $endY 252
set $bmp .bmp

set #s 1
for #step 0 9
// Поиск изображений
set $a 70%
set $check findimage (startx starty endx endy (filename) resultarray ($startX $startY $endX $endY (images\#step$bmp) [type [accuracy] %crds 2 88 -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)
hint Отдельное спасибо Zeleax за код сортировки массива
// Сортируем массив
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
msg Ваше число: $s
end_script

ну вот вроде настроил , но ищет через раз . Может я что то не правильно делаю ?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 8.6.2012, 10:02
Сообщение #22


*********

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



в findcolor вместо type пишите 2, вместо accuracy пишите 80, и скобки квадратные уберите


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cooll
сообщение 8.6.2012, 10:06
Сообщение #23


***

Novice
Сообщений: 54
Регистрация: 16.5.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.964
Возраст: 15



Цитата(Zeleax @ 8.6.2012, 10:02) *

в findcolor вместо type пишите 2, вместо accuracy пишите 80, и скобки квадратные уберите

спасибо
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 8.6.2012, 10:09
Сообщение #24


*********

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



Стоп. Просто в вашей записи уберите эти слова, а вместо 88 (в конце) поставьте меньшее значение. У вас уже были указаны данные типа и точности. Можно еще попробовать указать значение deviation.
мин

Сообщение отредактировал Zeleax - 8.6.2012, 10:09


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


***

Novice
Сообщений: 54
Регистрация: 16.5.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.964
Возраст: 15



код

set $path C:\Users\Евгений\Desktop\images\
set $startX 145
set $startY 224
set $endX 270
set $endY 252
set $bmp .bmp

set #s 1
for #step 0 9
// Поиск изображений
set $check findimage (startx starty endx endy (filename) resultarray ($startX $startY $endX $endY (images\#step$bmp) 2 80% %crds 2 88 -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)
hint Отдельное спасибо Zeleax за код сортировки массива
// Сортируем массив
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
msg Ваше число: $s
end_script

вот сделал , все равно не ищет
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 8.6.2012, 10:12
Сообщение #26


*********

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



Смотрите, в UOWiki указан следующий синтаксис:
set $a FindImage (StartX StartY EndX EndY (filename) %ResultArray [type [accuracy [count [deviation]]]] [abs])

То что в квадратных скобках - означает, что использовать необязательно, по необходимости.
Вместо слов нужно указывать числа или имена переменных, а вы просто скопировали, что неверно.

Пример правильной записи:

set $check FindImage ($startX $startY $endX $endY (images\#step$bmp) %crds 2 80 20 5 )

Сообщение отредактировал Zeleax - 8.6.2012, 10:22


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cooll
сообщение 8.6.2012, 10:22
Сообщение #27


***

Novice
Сообщений: 54
Регистрация: 16.5.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.964
Возраст: 15



а deviation указывать в процентах ?

код

set $path C:\Users\Евгений\Desktop\images\
set $startX 145
set $startY 224
set $endX 270
set $endY 252
set $bmp .bmp

set #s 1
for #step 0 9
// Поиск изображений
set $check findimage (startx starty endx endy (filename) resultarray ($startX $startY $endX $endY (images\#step$bmp) %crds 1 70 -1 20)
msg $check
// Проверка на наличие
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)
hint Отдельное спасибо Zeleax за код сортировки массива
// Сортируем массив
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
msg Ваше число: $s
end_script

после findimage пробую вывести значение , оно -1 почему то
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 8.6.2012, 10:24
Сообщение #28


*********

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



Будьте внимательнее. Смотрите что вы написали:
Цитата
set $check findimage (startx starty endx endy (filename) resultarray ($startX $startY $endX $endY (images\#step$bmp) %crds 1 70 -1 20)

а потом посмотрите, что я писал выше


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cooll
сообщение 8.6.2012, 10:32
Сообщение #29


***

Novice
Сообщений: 54
Регистрация: 16.5.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.964
Возраст: 15



Вроде пока ищет
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cooll
сообщение 8.6.2012, 17:18
Сообщение #30


***

Novice
Сообщений: 54
Регистрация: 16.5.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.964
Возраст: 15



теперь ищет нормально , но есть проблема , если 2 одинаковые цифры в числе , находит только одну . Например в числе 4104 , находит либо 410 , либо 104
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
esqado
сообщение 9.6.2012, 1:28
Сообщение #31


*****

Journeyman
Сообщений: 357
Регистрация: 5.11.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.217



Вот это уже странно. Сценарий был тестирован на нахождение одинаковых цифр в числе.


--------------------
В обычном программировании: любое значение может быть преобразовано в тип string
В программировании Pilot: любое значение должно быть типа имейдж.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cooll
сообщение 9.6.2012, 9:53
Сообщение #32


***

Novice
Сообщений: 54
Регистрация: 16.5.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.964
Возраст: 15



оно находит через раз , бывает нормально находит одинаковые цифры , а бывает только 1
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.6.2012, 10:30
Сообщение #33


***********

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



скорее всего просто сама цифра не находится. Т.е. либо финдимидж неверно настроен либо сами скриншоты кривые. Зачастую в шрифтах происходит наложение либо слипаются цифры. Если скрины делались четко по размеру цифры или даже еще и с полями, то это верный шанс получить ошибку поиска. Например:
40 - все ровно и четко.
47 - правый хвостик у 4 опасно приближен к 7. Из-за разницы по вертикали, человеку это не заметно, однако при наличии полей будут явные проблемы.

Где источник скрипта? Так и не нашел. Хочется почитать в нормальном виде и без редактирования. Может какие огрехи были.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____

Контакт актуален, подпись актуальна.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
esqado
сообщение 9.6.2012, 11:04
Сообщение #34


*****

Journeyman
Сообщений: 357
Регистрация: 5.11.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 14.217



Собственно сам сценарий
https://forum.uokit.com/index.php?s=&am...st&p=167986


--------------------
В обычном программировании: любое значение может быть преобразовано в тип string
В программировании Pilot: любое значение должно быть типа имейдж.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cooll
сообщение 9.6.2012, 12:18
Сообщение #35


***

Novice
Сообщений: 54
Регистрация: 16.5.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.964
Возраст: 15



Цитата(DarkMaster @ 9.6.2012, 10:30) *

скорее всего просто сама цифра не находится. Т.е. либо финдимидж неверно настроен либо сами скриншоты кривые. Зачастую в шрифтах происходит наложение либо слипаются цифры. Если скрины делались четко по размеру цифры или даже еще и с полями, то это верный шанс получить ошибку поиска. Например:
40 - все ровно и четко.
47 - правый хвостик у 4 опасно приближен к 7. Из-за разницы по вертикали, человеку это не заметно, однако при наличии полей будут явные проблемы.

Где источник скрипта? Так и не нашел. Хочется почитать в нормальном виде и без редактирования. Может какие огрехи были.

вот у меня
set $check FindImage ($startX $startY $endX $endY (images\#step$bmp) %crds 2 75 20 5 )
резал цифры нормально , у 4 хвостик обрезал , чтоб не мешал . Но все равно бывают проблемы
http://SSMaker.ru/46aed31c/ вот пример
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cooll
сообщение 10.6.2012, 19:30
Сообщение #36


***

Novice
Сообщений: 54
Регистрация: 16.5.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.964
Возраст: 15



Ну так в чем у меня проблема ?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 10.6.2012, 21:04
Сообщение #37


***********

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



Собственно ничего шибко не изменилось...
Скорее всего или картинки неудачные или надо снижать точности финдколора.
Попробуй в виде эксперемента вывести:
msg size (%m)
Это даст понять сколько цифр находит. Хотя бы точно можно будет отсечь сортировку.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____

Контакт актуален, подпись актуальна.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
EL-GReeN
сообщение 10.6.2012, 23:57
Сообщение #38


*****

Journeyman
Сообщений: 474
Регистрация: 18.7.2011
Группа: Пользователи
Наличность: 0
Из: Россия
Пользователь №: 13.815
Возраст: 32



Как вариант искажение в картинках цифр при работе с ними, можете сами сделать чистый бмп скрин области где ищется и точно попиксельно сравнить цвета с вашими картинками, должны совпадать на 100% иначе как раз и будут сбои в поиске(все на своей жо.. опыте пройдено), или покажите эти 2 файла нам


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 11.6.2012, 8:53
Сообщение #39


***********

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



Кстати сделайте обязательно скрин числа, которое не корректно было распознано. И работайте уже с ним, подгоняя под него бмпшники цифр.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____

Контакт актуален, подпись актуальна.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 11.6.2012, 9:22
Сообщение #40


*********

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



Кстати, можно было усовершенствовать скрипт:
- для каждой цифры назначать более чем 1 файл картинки (если одним файлом ну никак не обойтись)
- список имен всех файлов картинок и соответствующим им цифр хранить в отдельном текстовом файле


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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