離散点を使用してサンプリングされた曲線があります。閉曲線ではありません。弧の長さを計算したい。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) )