私が取り組んでいるプロジェクトで興味深いアルゴリズムの課題があります。通りの両側の建物を指している座標点の並べ替えられたリストがあり、十分にズームインすると、次のようになります。
このジグザグを滑らかにして、下にある通りを線形にしたいと思います。
私はいくつかの解決策を考えることができます:
- 6 点程度のローリング平均を使用して重心を計算し、それらを使用します。
- スプライン回帰。
この問題に取り組むためのより良い、または最良の方法はありますか? (私は Python 3.5 を使用しています)
私が取り組んでいるプロジェクトで興味深いアルゴリズムの課題があります。通りの両側の建物を指している座標点の並べ替えられたリストがあり、十分にズームインすると、次のようになります。
このジグザグを滑らかにして、下にある通りを線形にしたいと思います。
私はいくつかの解決策を考えることができます:
この問題に取り組むためのより良い、または最良の方法はありますか? (私は Python 3.5 を使用しています)
あなたの説明とコメントに基づいて、ライン単純化アルゴリズムを探しています。
Ramer-Doublasアルゴリズム (コメントで提案されています) は、おそらくこのファミリで最もよく知られているアルゴリズムですが、他にも多くのアルゴリズムがあります。
たとえば、Visvalingam のアルゴリズムは、三角形の最小の 2 乗によって計算される最小の変化を持つポイントを削除することによって機能します。これにより、コーディングが非常に簡単になり、直感的に理解できるようになります。研究論文を読むのが難しい場合は、この簡単な記事を読むことができます。
このファミリの他のアルゴリズムは次のとおりです。
それらについて読んで、彼らが何を縮小しようとしているのかを理解し、あなたに最も適したものを選択してください.