私は航空写真(たとえばGoogleマップから)から水路を認識しようとしています。地方自治体は、水路(および道路、建物など)の場所を示すGISデータを持っていることがよくありますが、地方自治体の水データはしばしば不正確であり、航空写真を使用して改善できる可能性があります。したがって、必ずしも信頼できるとは限らないデータがすでにいくつかあります。
データに対していくつかの基本的な画像処理を行う方法を知っています(残念ながら、ここに表示するサンプル画像はまだありません。これを行う方法を想像しようとしていますが、まだ機能しているコードはありません)。
画像の水路のビットを使用して色の値のセットを収集し、これらの色に最も近いピクセルを特定できます。他のタイプのフィーチャ(草、道路、建物など)の場合も同様です。ピクセルが「十分に近い」しきい値を設定すると、おそらく水路であるピクセルのセットが得られます(ただし、ノイズが多くなります)。
画像をグレースケールに変換し、標準のエッジ検出アルゴリズムを使用して、エッジの場所を特定できます。繰り返しますが、これにより境界のようなピクセルのセットが得られますが、ノイズが発生し、エッジが考えすぎたり、ギャップが生じたりします。
出力として必要なのは、推定水路の輪郭を描く一連のポリゴンです。
直感的に、検出されたエッジを使用してポリゴンを作成し、カラー情報を使用してそれらが水であるかを判断します。おそらく、すでに持っている政府のデータを利用します。
エッジ検出アルゴリズムの結果から閉じたポリゴンの適切なセットに到達するための既知の方法はありますか?または、より良い方法がある場合、この問題を攻撃する方法に関する他のヒントはありますか?