0

我有一条使用离散点采样的曲线。它不是闭合曲线。我想计算弧长。在 opencv 中,arclength 函数采用 2D 点。

有任何想法吗?

非常感谢

4

1 回答 1

1

请记住,采用离散点这将是一个估计值,但计算弧长的粗略方法是简单地将后续点之间的距离/幅度相加。因此,如果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) )
于 2012-09-12T14:40:22.523 回答