航空写真の水路の認識—エッジ検出画像からのポリゴン


9

私は航空写真(たとえばGoogleマップから)から水路を認識しようとしています。地方自治体は、水路(および道路、建物など)の場所を示すGISデータを持っていることがよくありますが、地方自治体の水データはしばしば不正確であり、航空写真を使用して改善できる可能性があります。したがって、必ずしも信頼できるとは限らないデータがすでにいくつかあります。

データに対していくつかの基本的な画像処理を行う方法を知っています(残念ながら、ここに表示するサンプル画像はまだありません。これを行う方法を想像しようとしていますが、まだ機能しているコードはありません)。

  • 画像の水路のビットを使用して色の値のセットを収集し、これらの色に最も近いピクセルを特定できます。他のタイプのフィーチャ(草、道路、建物など)の場合も同様です。ピクセルが「十分に近い」しきい値を設定すると、おそらく水路であるピクセルのセットが得られます(ただし、ノイズが多くなります)。

  • 画像をグレースケールに変換し、標準のエッジ検出アルゴリズムを使用して、エッジの場所を特定できます。繰り返しますが、これにより境界のようなピクセルのセットが得られますが、ノイズが発生し、エッジが考えすぎたり、ギャップが生じたりします。

出力として必要なのは、推定水路の輪郭を描く一連のポリゴンです。

直感的に、検出されたエッジを使用してポリゴンを作成し、カラー情報を使用してそれらが水であるかを判断します。おそらく、すでに持っている政府のデータを利用します。

エッジ検出アルゴリズムの結果から閉じたポリゴンの適切なセットに到達するための既知の方法はありますか?または、より良い方法がある場合、この問題を攻撃する方法に関する他のヒントはありますか?


1
補足:Googleライセンスではこれを行うことはできません。openstreetmapにも同じ問題があります。OSMはBingイメージを使用することに同意しています。
PiTheNumber

回答:


6

これは、色情報だけで行うのは困難です。航空写真と衛星画像の間(または画像内でも)の色の変化は非常に大きくなる可能性があります。理想的には、ハイパースペクトルまたは少なくとも赤外線画像が必要です(このペーパーを参照)。

エッジ検出がピクセル境界にスナップできると仮定すると、各ピクセルの境界を閉じたポリゴンとして取り、それらを結合してポリゴンを作成できます(ユニオンの実装によっては、内部リングまたは穴のあるポリゴンになる可能性があります)またはコレクション。ポリゴンの。Javaのトポロジスイートおよびその他の計算幾何学の実装はあなたのために、この非常に簡単に行うことができます。サブピクセル境界を使用したい場合は、非常に注意して、非常に近いが正確に接触していないエッジをスナップできるように、適切なイプシロン値を設定する必要があります。

エッジを取得して自分で組み合わせたい場合は、交差するエッジのグラフを作成し、グラフを横切る(反時計回りなど)グラフを実装して、それ自体がどこに閉じて多角形を形成しているかを見つけます。これは、ポリゴンのユニオン実装の一部が機能する方法です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.