我有一条使用离散点采样的曲线。它不是闭合曲线。我想计算弧长。在 opencv 中,arclength 函数采用 2D 点。
有任何想法吗?
非常感谢
请记住,采用离散点这将是一个估计值,但计算弧长的粗略方法是简单地将后续点之间的距离/幅度相加。因此,如果x
是闭合曲线上采样 2D 点的有序列表:
sum( magnitude(x[i]-x[i+1]) for i in range(len(points)-1) )
如果您知道有关曲线的其他一些属性,则可以更准确地计算出这个...
.
相同的技术可以应用于更高维度的向量,您可以使用广义公式:
def dist(X,Y):
return math.sqrt(
sum( (X[i] - Y[i])**2 for i in len(range(X)) )
)
sum( dist(x[i],x[i+1]) for i in range(len(points)-1) )