首页 > 解决方案 > 有效地找到一条线的斜率

问题描述

我有一系列(x,y)数据点:可能是视频中对象的位置,或者用户手指在触摸屏上的位置。我需要确定这个对象/触摸/等是否在近似直线上移动,以及哪个方向(角度、斜率或任何其他表示有效)。

我的第一个想法是对(样本的索引)进行线性回归,对 进行另一个线性回归xty获得t斜率,然后使用相关系数来确定数据的线性程度。但这需要在嵌入式硬件上连续运行,而且这些计算相当昂贵。

鉴于t轴几乎无关紧要,我可以采取任何捷径吗?y例如,对于的线性回归x会更有效,但它会遇到垂直线和接近垂直线的问题。

标签: algorithmpattern-matchinglinear-regressiongesture

解决方案


我对廉价测试的第一个想法是计算每对连续点之间的线段的角度(相对于 X 轴),如果它们的差异超过允许的误差,则称其为非​​线。

这将允许平缓曲线通过测试,因此最好将新斜率与旧斜率的低通滤波版本进行比较。


推荐阅读