11

標高マップをラスターとして保存しています。滑らかな「ベクトル」曲線を一定の高さの等高線に合わせたいと思います。私のアプリケーションでは、データは実際には地理的な標高ですが、問題は2つの変数の任意の関数に一般化できます。

アンチエイリアス処理された等高線を使用して別のラスターを作成し、それが役立つ場合は、それをベクトルフィッティングプロセスへの入力として使用できます。

この質問も似ていますが、Javaアプリケーションで使用できる無料のライブラリ、または私(数学者ではない)が自分で実装できるアルゴリズムの説明を探しています。また、私の場合、気になるすべての「エッジ」をすでに見つけました。それらをベクトル化する必要があります。

別の質問が私のものに触れていますが、ポスターは彼が最終ステップをどのように実行したかを説明するために戻ってきませんでした。それは私が欠けている部分です。

4

3 に答える 3

3

おそらく、閉じたベジェスプライン(曲線)に適合させたいと思うでしょう。

そのようなフィッティングを行うJavaアプレットのページがあります。彼らの(コメントされていない、bleh)PSegment.javaを見てください

それでも十分に機能しない場合は、Bスプライン曲線を2乗距離最小化による点群に適合させるのはやり過ぎです。

詳細については、Google(Scholar)で「bスプラインフィッティング」や「クローズドベジェスプライン」などを検索すると役立つはずです。

于 2009-02-10T20:05:42.547 に答える
2

MATLAB は等高線図でこれを行います:contour関数を参照してください -- f(x,y) データのグリッドから等高線データを生成します。私は彼らが使用するアルゴリズムについてはあまり知りません (彼らはそれについて議論しているページを持っています) が、 Octave に相当するものを見る価値があるかもしれません。

等高線図に関する論文と、その論文に基づくCodeProject ページがあります。

于 2009-02-10T21:50:38.770 に答える
1

私はGDALを使用します。そして、私の意見では、ベジエ スプラインを作成したくないので、複雑さが増します。短い線分で十分です。

唯一の問題は、Java アプリではなく、データの準備時に等高線を作成する必要があることです。

GDAL を使用してUSGSの高さデータから作成された等高線を含むマップを次に示します。

ここに画像の説明を入力

于 2012-12-24T19:59:50.327 に答える