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

2 страниц V < 1 2  
Ответить в эту темуОткрыть новую тему
> Слежение, Слежение за объектом в окне
makentowek
сообщение 23.8.2018, 17:09
Сообщение #21


**

Neophyte
Сообщений: 11
Регистрация: 21.3.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 18.871
Возраст: 28



Цитата(DarkMaster @ 23.8.2018, 16:19) *

а что вы хотите услышать? По факту нужно делать финдимиджи и прогнозировать направление. Записывать координаты, вектор, скорость. Делать второй скрин и оценивать который из колпачков где находится согласно вектору, скорости, координатам. И так по кругу. Можно попробовать еще на начальном этапе по первым кадрам перемещения понять где окажется колпачек в итоге, но смысл тот же самый. Это в чистом виде примитивное описание физикической модели и сравнение результата с наблюдаемой картинкой для коррекции погрешности.

Хотелось бы реализацию увидеть, если это не сложно
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 23.8.2018, 17:51
Сообщение #22


***********

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



Кусок схожего по смыслу кода. Это из моего скрипта по распознаванию текста. Смысл в том, что если мы ищем некторый символ, скажем, букву "Е", то при определенной погрешности мы можем вместо одной реально существующей буквы найти несколько "двоящихся". В данном скрипте отсекаются изображения с очень близкими координатами. options.dupImage - расстояние при котором считается дубликатом.
Код
        -- Удаляем дубли.
        local crdsClear={} -- Массив без дублей.
        for i=1, #crdsRaw, 1 do
            local catch = 0 -- Флаг найденного дубля.
            for n=i+1, #crdsRaw, 1 do
                if  crdsRaw[i].symbolName == crdsRaw[n].symbolName and
                  math.abs(crdsRaw[i].x - crdsRaw[n].x) <= options.dupImage and
                  math.abs(crdsRaw[i].y - crdsRaw[n].y) <= options.dupImage then
                    catch = 1
                    break
                end
            end
            --log(catch)
            if  catch == 0 then -- не дубль, копируем значение в чистый массив.
                table.insert(crdsClear,crdsRaw[i])
            end
        end

Накидать по-быстрому рабочий код тут едва ли получится - нужно учесть, что изначально скорости равны нулю, что ближайший колпачек после обновления совсем не обязательно будет тем же самым (прогнозирование скорости и вектора), траектории не линейные и т.д. По большому счету тут нужно понять, как вы, как человек, определяете какой из них где и куда движется - перевести в код это уже самое придет. Начинайте писать - подскажем, поможем. Тут еще никого в этом плане обижали =)


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

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

 

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