代码之家  ›  专栏  ›  技术社区  ›  Draconis

有效地求直线的斜率

  •  1
  • Draconis  · 技术社区  · 7 年前

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

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

    有什么捷径我可以走吗? T 轴心几乎不相关?线性回归 Y 依据 X 例如,这样会更有效,但它会遇到垂直线和近垂直线的问题。

    2 回复  |  直到 7 年前
        1
  •  3
  •   AShelly    7 年前

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

    这将允许柔和的曲线通过测试,所以也许最好将新的斜率与旧的低通滤波版本进行比较。

        2
  •  0
  •   Vineeth Chitteti    7 年前

    找出起点和终点之间的直线方程。现在计算从每个点到这条线的垂直距离。如果每个垂直距离都在公差值内,则可以将其视为直线。