Я разрабатываю программное обеспечение для перемещения мыши на основе определенных координат, которые я получаю из изображения глубины от kinect. но у меня 30 кадров в секунду (изображений в секунду), и эти координаты меняются с каждым кадром, поэтому мышь продолжает двигаться. Мой вопрос: есть ли способ сгладить движение мыши?
сглаживание движений мыши
comment
Не могли бы вы предоставить больше информации? Насколько сильно дергается движение (большое/маленькое)? Если он небольшой - может помочь какая-то простая временная фильтрация. Если он большой, это, вероятно, указывает на проблемы с вашими данными/алгоритмом и не может быть сглажено без переосмысления проблемы.
- person Ani   schedule 25.05.2012
comment
Как сказал @ananthonline, нам понадобится НАМНОГО больше контекста и, без сомнения, какой-нибудь пример кода. Хотя звучит интересно - мне нравятся такие задачи, напиши код.
- person   schedule 25.05.2012
comment
Дрожание небольшое, но я хочу сгладить движение, например, когда мышь должна переходить из одного положения в другое. Он показывает некоторую прерывистость. Мне нужен способ перемещать его, как это делает обычная мышь (я знаю, что обычная мышь имеет гораздо более высокую частоту, но есть ли способ перемещать мой курсор аналогичным образом?)
- person Makram Bg   schedule 08.06.2012
Ответы (2)
Да, вы можете начать отслеживание с некоторыми параметрами, которые позволят сделать движение более плавным.
Ниже приведен пример кода:
var parameters = new TransformSmoothParameters
{
Smoothing = 0.2f,
Correction = 0.0f,
Prediction = 0.0f,
JitterRadius = 1.0f,
MaxDeviationRadius = 0.5f
};
this._sensor.SkeletonStream.Enable(parameters);
Вы можете изменить Smoothing
, Correction
, Prediction
, JitterRadius
и MaxDeviationRadius
на любые числа, которые вы хотите.
person
Fixus
schedule
25.05.2012
Фиксус, это будет работать только в том случае, если ОП отслеживает скелет, а не в том случае, если он напрямую использует изображение глубины для вычисления положения мыши.
- person Ani; 25.05.2012
@ananthonline это правда. Я должен написать это. Но совместить оба потока не сложно, поэтому я подумал, что это хорошая вещь для написания :)
- person Fixus; 26.05.2012
Спасибо за ответ, я не уверен в этом, но есть ли способ сопоставить координаты глубины с точкой скелета и отследить ее? если да, пожалуйста, предоставьте мне пример кода. заранее спасибо
- person Makram Bg; 08.06.2012
Поскольку вы хотели узнать о "сопоставлении координат глубины с точками скелета", вы можете использовать DepthImageFrame
MapToSkeletonPoint()
, который принимает значения X и Y данных о глубине, а затем создайте файл SkeletonPoint
. Пример:
SkeletonPoint point = depthFrame.MapToSkeletonPoint(x, y);
Надеюсь это поможет!
person
Liam McInroy
schedule
29.08.2012