Эффективно найти наклон линии - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть серия (x,y) точек данных: возможно, местоположение объекта в видео или положение пальца пользователя на сенсорном экране.Мне нужно определить, перемещался ли этот объект / касание / и т.д. приблизительно по прямой линии, и в каком направлении (угол, наклон или любое другое представление работает).

Моей первой мыслью было сделать линейную регрессию дляx в терминах t (индекс выборки) и еще один для y в терминах t, чтобы получить наклон, затем используйте коэффициенты корреляции для определения линейности данных.Но это должно выполняться постоянно на встроенном оборудовании, и эти вычисления довольно дороги.

Могу ли я воспользоваться какими-либо ярлыками, учитывая, что ось t в значительной степени не имеет значения?Например, линейная регрессия для y в терминах x была бы более эффективной, но она столкнулась бы с проблемами с вертикальными и почти вертикальными линиями.

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Найти уравнение прямой между начальной и конечной точкой.Теперь вычислите перпендикулярное расстояние от каждой точки до этой линии.Если перпендикулярное расстояние каждого находится в пределах допустимого значения, то вы можете рассматривать его как прямую линию.

0 голосов
/ 29 ноября 2018

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

Это позволит плавным кривым пройти тест, поэтому, возможно, лучше сравнить новый уклон с отфильтрованной низкочастотной версией старого.

...