我有一个使用离散点的曲线。 它不是一个封闭的曲线。 我想计算弧长。 在opencv中,arclength函数采用2D点。
有什么想法吗?
非常感谢
答案 0 :(得分:1)
请记住,采用离散点这将是一个估计值,但计算弧长的粗略方法是简单地将后续点之间的distances/magnitudes求和。因此,如果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) )