如何在线性插值中找到坏点?
Posted
技术标签:
【中文标题】如何在线性插值中找到坏点?【英文标题】:how to find bad points in a linear interpolation? 【发布时间】:2014-08-19 12:34:23 【问题描述】:我有一组点,我知道:
-
都是0-255
它们的格式是递增的(因此 Point[0]
他们正在压制一条线(有一些噪音)。
但是有些地方表现不好。我需要检测这些点。最快的方法是什么?
一般我可以得到第一个和最后一个并找到线公式,然后计算每个点的误差,如果误差太大,我将该点标记为坏点。
有没有更好的方法(更快更准确)?
是否有任何库可以提供帮助(我正在使用 OpenCV 和 Boost)。
【问题讨论】:
你能定义“行为不端”吗?如果第一行和最后一行实际上是“坏点”怎么办?是什么让您认为选择这两个是最好的方法? 是的,拿第一点和最后一点可能是个坏主意,因此:fitLine @berak fitLine 似乎是一个不错的解决方案。我怎样才能找到不好的点?与实际线有很大偏差的点? 【参考方案1】:您应该计算linear regression 并测量点与该趋势线的距离,而不是取第一个点和最后一个点。可能是您的第一点/最后一点表现不佳。
【讨论】:
如何求点到线的距离?最快的方法是什么? @mans 您可以在点的 x 坐标处评估线函数 f(x)=kx+a 并检查 abs(kpoint_x+a -point_y) 超过某个阈值(k 和 a 是线系数)。这不是“垂直”距离,但我想你的情况已经足够了。 这个距离是多少?【参考方案2】:循环遍历它们,如果 p[i]
我不知道你为什么提到 lerp,这听起来不相关。 lerp 函数不能返回错误的结果。
【讨论】:
以上是关于如何在线性插值中找到坏点?的主要内容,如果未能解决你的问题,请参考以下文章