algorithm - 有效地找到一条线的斜率
问题描述
我有一系列(x,y)
数据点:可能是视频中对象的位置,或者用户手指在触摸屏上的位置。我需要确定这个对象/触摸/等是否在近似直线上移动,以及哪个方向(角度、斜率或任何其他表示有效)。
我的第一个想法是对(样本的索引)进行线性回归,对 进行另一个线性回归x
,t
以y
获得t
斜率,然后使用相关系数来确定数据的线性程度。但这需要在嵌入式硬件上连续运行,而且这些计算相当昂贵。
鉴于t
轴几乎无关紧要,我可以采取任何捷径吗?y
例如,对于的线性回归x
会更有效,但它会遇到垂直线和接近垂直线的问题。
解决方案
我对廉价测试的第一个想法是计算每对连续点之间的线段的角度(相对于 X 轴),如果它们的差异超过允许的误差,则称其为非线。
这将允许平缓曲线通过测试,因此最好将新斜率与旧斜率的低通滤波版本进行比较。
推荐阅读
- ios - 将自定义精灵对象添加到视图
- mysql - 检索按日期过滤的每个组中的最后一条记录 - MySQL
- python - Pandas 在日期系列的 24 小时内查找行
- django - 自动创建相关模型
- datetime - 在 sqlite 中创建具有默认当前时间的日期时间列
- java - 为什么我不能在公共起落架方法中调用私有绘制方法?
- swift - 将目标添加到 Swift 中的按钮
- python - python中的正则表达式不匹配
- android - 当按钮处于不同布局时如何使用 onClickListener?
- java - Secured JMS queue connection jboss