4

地図の画像ファイルと、太い赤い線でマークされた曲がりくねった道路があります (幅が 1 ピクセルを超え、画像に他の赤いオブジェクトはありません)。正確な距離を測定できるように、この道路を線として認識し、それを関数 y=f(x) に変換する方法を提案してください。どこから始めたらいいのかわからない...

ありがとう。

4

3 に答える 3

2

画像をピクセルごとに調べて、それぞれの色を確認します。ピクセルが赤の場合は、道路を構成するポイントのリストにポイント (x/y 座標) を追加します。

関数の意味がわかりません。特定のポイントが道路上にあるかどうかを判断するために、多項式または関数が必要ですか? 前者の場合は、一連の点を取り、それらの点に最適な多項式を返すカーブ フィッティング関数を備えた数学ライブラリを探します。ただし、おそらく後者が必要だと思います。その場合、関数に問題の座標を取得させ、ポイント セットを検索して、ポイントがセット内にあるかどうかを判断します。これは、座標を O(1) 操作を使用して検索できるキーにエンコードするマップ/ハッシュを使用した場合に最も高速になります。

于 2009-04-05T17:57:13.043 に答える
1

補間を調べてみてください。私はあなたが物理シミュレーターで話していることに似たものを使用しました。そのために必要なことは、道路を表すいくつかの一般的なポイントを見つけることです。これらのポイントはすべて一定の間隔で離れています。次に、3 点の各セットを 2 次方程式にマップできます (点が均一に分離されている場合は簡単です)。その後、近くの方程式を補間する必要があります。必要に応じて使用できるコードがいくつかあります。

于 2009-04-05T17:58:06.113 に答える
0

方向がわかったので、両側のエッジの方程式を見つけて、それらの中央を見つけることができます。その後、ポイントを新しい方程式に適合させることができます。

編集:コメンターが指摘した侵食の記事に似ていると思います。ここにリンクがあります(投稿されたリンクが壊れているようです)。

于 2009-04-05T21:38:23.603 に答える