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 に答える