当面の私の仕事は、点群から特定の輪郭を見つけることです。それらはできるだけ正確に決定する必要があります。したがって、より高次の多項式補間を使用する必要があります。グリッド内のポイントで構成されるデータがあり、各ポイントには独自の高さがあります。
matplotlib.contours関数で等高線を見つけることに成功しました。次に、 matplotlib.cntr (C++ アルゴリズム)を直接使用して、特定の輪郭を決定しました。しかし、ファイルはマーチング スクエア アルゴリズム (線形補間) を使用しているため、見つかった等高線の精度は十分ではありません。
この問題を解決する別の方法を探しています。提案された解決策は、
- バイキュービック補間を使用して、特定の点の周りの分析関数を見つけます。
- 次に、関数導関数の計算が続きます。
- 次に、導関数を使用して、導関数が 0 にとどまる方向を決定します (視点としてポイントを使用)。その方向に少し移動すると、高さは一定に保たれます。
このアルゴリズムを使用して、輪郭を見つける必要があります。このアルゴリズムは機能しますか? (既に実装されている関数を使用して) 実装するときに近道をすることはできますか?
このアルゴリズムを実装するには、かなりの労力が必要であり、理論上しか機能しない可能性があります。数値エラーはまだ存在するはずであり(導関数は正確に0ではない可能性があります)、最終的には現在のものを超える可能性があると推測しています(マーチングスクエアを使用)。この問題を解決するための、より簡単で高速な他の方法を検討したいと思います。
それを解決するために使用できる他のアルゴリズムは何ですか?
誰かが同様の問題に直面したことがありますか? どのように解決しましたか?