Kinect жест рукой машет рукой - PullRequest
4 голосов
/ 29 марта 2012

Я делаю приложение kinect, используя Kinect SDK .

Результат Я хочу, чтобы он мог идентифицировать руку, махающую в течение 5 секунд. Делать что-нибудь, если это делает Кто-нибудь знает, как это сделать?

Я делаю в приложении WPF. Хотелось бы иметь пример. Я довольно новичок в Kinect.

Ответы [ 3 ]

4 голосов
/ 06 апреля 2012

Вы можете написать простой алгоритм, чтобы получить жест заработной платы.Для вашего примера вам нужен лимит времени

public static int timeLimit = 5000;

Теперь подумайте о волне.Он имеет 3 состояния

1) Нейтральная поза, когда ваша рука находится на той же позиции на оси X, что и локоть.

2) Когда рука находится справа от локтя

3) Когда рука находится слева от локтя

Помните, что вы начинаете с состояния 1. Чтобы получить от 2 до 3, вам нужно идти с 1 в середине.Итак, как вы можете видеть, есть комбинация 1 - 2 - 1 - 3 - 1 <- первая волна </p>

Безопасность, которую вы можете получить из положения сустава

first.Joints[JointType.HandRigh].Position.X

этопростая математика.

о сек.Просто возьмите (например) временную метку SkeletonFrame и сравните

if((currentTimestamp - startTimestamp) < MainWindom.timeLimit) 

startTimestamp - это временная метка, когда ваша рука находится в положении для старта.

Добавьте также флаг, который указывает, что рука включенахороший трек

надеюсь, это помогло

4 голосов
/ 29 марта 2012

Проверьте проект Kinect Toolbox @ http://kinecttoolbox.codeplex.com/. Имеет реализацию детектора жестов Swipe.

1 голос
/ 29 марта 2012

Я рекомендую Channel 9 Kinect для Windows Quickstarts , если вам нужно изучить основы.

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

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

...