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

52 страниц V « < 3 4 5 6 7 > »   
Ответить в эту темуОткрыть новую тему
> Упростить скрипт
DarkMaster
сообщение 9.8.2013, 18:17
Сообщение #81


***********

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



Код
set linedelay 0

// Координата левого верхнего изображения.
// С точностью до пикселя.
set #startOffsetX 5
set #startOffsetY 5
// Шаг сетки изображений.
// С точностью до пикселя.
set #cellOffsetX 10
set #cellOffsetY 10
// Изображения шариков
set %image [ 1 ] image1.bmp
set %image [ 2 ] image2.bmp
set %image [ 3 ] image3.bmp
set #countImage size (%image)

for #i 1 #countImage
// Имидж или колор сам выбирай.
//    set $a findimage ... %image [ #i ] %arr ...
//    set $a findcolor ( 2, 1 50, 50 1 1 2366701 %arr 2 )
//    log $a
    for #n 1 $a 1
        set #fieldX ( %arr [ #n 1 ] - #startOffsetX ) / #cellOffsetX + 1
        set #fieldY ( %arr [ #n 2 ] - #startOffsetY ) / #cellOffsetY + 1
        log #fieldX #fieldY
        set %field [ #fieldY #fieldX ] #i
    end_for
end_for

save_array %field field.txt
stop_script

Этот скрипт достаточно шустро соберет тебе матрицу, которую в дальнейшем можно будет анализировать.

Сообщение отредактировал DarkMaster - 10.8.2013, 18:15


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


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(DarkMaster @ 9.8.2013, 18:17) *

Этот скрипт достаточно шустро соберет тебе матрицу, которую в дальнейшем можно будет анализировать.

скрипт

set linedelay 0

// Координата левого верхнего изображения.
// С точностью до пикселя.
set #startOffsetX 5
set #startOffsetY 5
// Шаг сетки изображений.
// С точностью до пикселя.
set #cellOffsetX 10
set #cellOffsetY 10
set %image [ 1 ] 348463
set %image [ 2 ] 553935
set %image [ 3 ] 895278
set #countImage size (%image)
for #i 1 #countImage
set $a findcolor ( 239, 122 492, 375 1 1 ( %image [ #i ]) %arr 2 )
for #n 1 $a 1
set #fieldX ( %arr [ #n 1 ] - #startOffsetX ) / #cellOffsetX + 1
set #fieldY ( %arr [ #n 2 ] - #startOffsetY ) / #cellOffsetY + 1
log #fieldX #fieldY
set %field [ #fieldX #fieldY ] #i
end_for
end_for

Спасибо большое за скрипт. Посмотрите, правильно я под финдколор сделал, а то он у меня сетку рисует, только цвета на поле не совпадают с цветами в сетке. Координаты поля, шаг и цвет указываю правильно.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.8.2013, 19:14
Сообщение #83


***********

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



ну он сетку и должен нарисовать. Он создаст массив типа:
123456
113341
233547

Т.е. у тебя будет массив у добоваримом виде, повторяющий расположение фигур. Дальше тебе уже не цвета анализировать надо будет, а просто циферки.

оффсеты под себя то поменяй.


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


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(DarkMaster @ 9.8.2013, 19:14) *

ну он сетку и должен нарисовать. Он создаст массив типа:
123456
113341
233547

Т.е. у тебя будет массив у добоваримом виде, повторяющий расположение фигур. Дальше тебе уже не цвета анализировать надо будет, а просто циферки.

оффсеты под себя то поменяй.

офсеты и координаты поменял. я так понимаю, каждая цифра в файле будет обозначать цвет(set %image [ 1 ] 348463) это значит, что под цифрой 1 будет цвет 348463. Если я это правильно понял, тогда сетка рисуется совсем не правильно. Цифра в файле не соответствует цвету на поле. И создает он масиив типа:
1 2 3 4 5 6

1 1 3 3 4 1

2 3 3 5 4 7
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.8.2013, 20:25
Сообщение #85


***********

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



пока не понимаю чем не правильный массив.


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


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



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

пока не понимаю чем не правильный массив.

set %image [ 1 ] 348463
set %image [ 2 ] 553935
set %image [ 3 ] 895278
Я вас правильно понимаю, что под цифрой 1 в массиве должен быть цвет 348463, под цифрой 2 должен быть цвет 553935 ??? Если это так то у меня цифры в массиве не соответствую цветам на поле.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.8.2013, 20:56
Сообщение #87


***********

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



покажи какой массив получает и какой должен быть.

Кстати там левых значений финдколора точно нет? Сделай шаг поиска такой же, как оффсет сетки.


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


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



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

покажи какой массив получает и какой должен быть.
Кстати там левых значений финдколора точно нет? Сделай шаг поиска такой же, как оффсет сетки.


set #startOffsetX 260
set #startOffsetY 145
set #cellOffsetX 41
set #cellOffsetY 41
Получает массив
245342
444445
454531
545233
454141
334545

должен быть:
224543
245453
514534
345215
143344
251315
левых значений нет, я сделал скрипт на ифах и каждый шар с цветом находит не путаясь. только он очень долго ищет.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.8.2013, 21:15
Сообщение #89


***********

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



оставь один цвет, посмотри, что получится. Добавляй потихоньку. Я на пэинте тестил, а это искуственный аквариум все-таки.

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

Сообщение отредактировал DarkMaster - 9.8.2013, 21:16


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


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(DarkMaster @ 9.8.2013, 21:15) *

оставь один цвет, посмотри, что получится. Добавляй потихоньку. Я на пэинте тестил, а это искуственный аквариум все-таки.

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

Так у меня ищет цвет финдколор, а ифом потом ищу остальные которые рядом. По одному цвету пробовал, так же путаница. Про лог не понял, это добавить строчку в скрипт лог коммандс?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.8.2013, 21:32
Сообщение #91


***********

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



log $a
в идеале еще можно сделать
save_array %arr arr#i.txt

Тут вообще варианта два:
1) находит лишнее.
2) ошибочно сделаны оффсеты.

Ты понимаешь, что все найденные точки должны быть точно в одних координатах? Т.е. если у нас есть поле 5*5=25 клеток, то всего 25 координат в которых должна быть проверка. Скажем у нас есть кружок, треугольник и квадрат. Все эти фигуры должны быть найдены в одной точке ячейки.

http://flockdraw.com/8hj2qv

посмотри тут. Нарисовал. Все расстояния (показанные серым), должны быть одинаковыми в найденных точках. Аналогично и по вертикали.

поэтому мне и показалось, что финдимиджем этого достичь намного проще.


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


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(DarkMaster @ 9.8.2013, 21:32) *

посмотри тут. Нарисовал. Все расстояния (показанные серым), должны быть одинаковыми в найденных точках. Аналогично и по вертикали.

Вы были правы, один цвет выдавал много лишних точек. Попробовал без этого цвета. В таблице все равно рисует неправильно. А вот в save_array записывает только последний найденный цвет, координаты полностью совпадают с найденными шарами, а вот в таблице они записаны уже неправильно. log $a всегда показывает количество правильно найденных шаров.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 10.8.2013, 6:04
Сообщение #93


***********

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



чиркани координаты найденных точек, оффсеты которые ты выставил.


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


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(DarkMaster @ 10.8.2013, 6:04) *

чиркани координаты найденных точек, оффсеты которые ты выставил.

set #startOffsetX 260
set #startOffsetY 145
set #cellOffsetX 41
set #cellOffsetY 41

Может я не так выставляю set #startOffsetX 260 - тут я ставлю координаты с первой верхней ячейки слева, там где начинается цвет искомой точки. Почти до утра сидел, пытался понять, как ваш скрипт работает, так и не понял. фор в форе, да и внутри фора все закручено, это мне тяжело понять.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 10.8.2013, 15:34
Сообщение #95


***********

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



Цитата
чиркани координаты найденных точек

хде оно?
Цитата
Может я не так выставляю set #startOffsetX 260 - тут я ставлю координаты с первой верхней ячейки слева, там где начинается цвет искомой точки.

По сути это должна быть координата первой найденной точки в левой верхней ячейке.


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


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(DarkMaster @ 10.8.2013, 15:34) *

хде оно?

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


***********

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



координаты найденных точек. Т.е. те массивы, которые находятся финдколором.


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


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(DarkMaster @ 10.8.2013, 17:08) *

координаты найденных точек. Т.е. те массивы, которые находятся финдколором.

Вставляю save_array arr#i.txt после строки set %field [ #fieldX #fieldY ] #i и происходит запись координат только цвета который ищется последним, может я его не туда ставлю ?
а так вот координаты:
260 145
424 186
465 186
342 227
465 227
383 309
301 350
342 350
465 350
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 10.8.2013, 17:47
Сообщение #99


***********

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



#i.txt некорректное применение переменной. Скрипт считает, что "." является признаком ссылки в другую вкладку с названием "txt". Можно сделать так:
set $txt .txt
save_array arr#i$txt
Все перечисленные координаты являются корректными. При этом какие-либо из приведенных координат были неправильно записаны в итоговую таблицу?


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


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(DarkMaster @ 10.8.2013, 17:47) *

#i.txt некорректное применение переменной. Скрипт считает, что "." является признаком ссылки в другую вкладку с названием "txt". Можно сделать так:
set $txt .txt
save_array arr#i$txt
Все перечисленные координаты являются корректными. При этом какие-либо из приведенных координат были неправильно записаны в итоговую таблицу?

Искал один цвет №1, финдколор нашел правильно все шары. В массиве были координаты записаны правильные.
260 186
383 186
301 309
342 309
424 350
расположение шаров как они находились на поле:
000000
100100
000000
000000
011000
000010

а вот в файле сетка была нарисована такая:
010000
000010
000010
010000
000001
000000

то есть, ни один шар в файле, не соответствует как они находятся на поле.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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