2011-02-03 4 views
1

をマッピングし、私はGoogleマップからダウンロードした画像を見ることでできるようになりますいくつかのコードを開発するために探しています、土地を描いている画像のどの部分と描いている部分分類海。アドバイス

私はコンピュータビジュアルと機械学習の初心者ですから、私はこのテクニックのためのいくつかの指針やAPIを探しています(私はこのソリューションのコードを探していません)。

私がこれまでにいくつかを持っているもの:

  • エッジ検出は、(独自に)多くの助けにはならないことがあります。それは海岸の非常に素敵な概要を与えるが、表面上のアーティファクトが/海の上(雲、船、などのようなもの)土地の質量のための偽陽性を与える可能性があります。 (明らかに、海が陸より青い飽和のはるかに高いレベルを有するように)

任意の助けがある海またはされていないの非常に良好な指標を与えることができる画像の青のカラー要素を抽出

  • もちろん、大変感謝しています。 (似た何かをしたいことがあり、誰のための)

    EDIT:

  • +1

    おそらく実験のちょっとしたことで、google maps imagesの良い[threshold](http://en.wikipedia.org/wiki/Thresholding_%28image_processing%29)が見つかりました。 –

    答えて

    2

    は、私はあなたがそうでなければ、船や他のアーティファクトについて書かれていませんGoogleマップの衛星ビュー画像を使用していると仮定します。

    あなたはすでに単に青の画像部分を抽出しようとするのは良い考えかもしれません言ったように。 ちょうどRGB画像の青チャンネルを見て森以来、(私は試してみました)仕事に行くされていないので、上の水の良いしきい値を与えることはありません持ちます。

    画像をYCbCrの色空間に変換し、そこでクロミナンスチャンネルを見てみることができます。

    この例では、Googleマップのスクリーンショットを作成しました。私はそれをMatlabのYCbCrに変換し、ちょうどCbチャンネルを取った。

    original screenshot

    cb channel of ycbcr image

    その後、見つけることが硬くなりすぎはずのも設定されたしきい値により、この画像を2値化することができます。 モルフォロジー演算子を使用できる小さなアーティファクトが残っています(イメージを何度も開く)。 これは小さなアーチファクトを取り除き、土地の部分と水の部分を残すべきです。

    はそれが役に立てば幸い...いない場合は、求めておいてください...

    EDIT

    私はMathWorks社のMATLAB内の別のスクリーンショットで再び試してみた:

    1. 変換イメージYCbCr colorspaceへ
    2. ちょうどCbチャンネルを見てください
    3. Cbの画像を見つけるのは固定かiか.E二部ヒストグラム
    4. に適切なしきい値Lが

    に小さなノイズを除去するために私が作った原画像開口または他のフィルタを実行発見大津の方法。

    screenshot

    を適用した後にCbイメージのしきい値: after applying threshold

    final image

    私はちょうど閾値を手作業で選択しました...より良い結果が得られるかもしれませんが、しきい値がより良くなるように見えるかもしれません...しかし、これは川と海からのさまざまな水の色にも作用するはずです。

    +0

    ありがとう、これはとても良いアドバイスでした。 Google Maps APIを少し掘り下げた後、ラベル付きの静的APIから地図のような画像を取り除くことができました(既存のフェリーの経路は削除されませんが、青色のため、一般的に上の手法で削除されます)。これらのマップ画像は、上述のアーチファクトに悩まされず、閾値処理をより容易にする。例url- http://maps.google.com/maps/api/staticmap?sensor=false&size=1000x1000¢er=dover&zoom=12&style=feature:all|element:labels|visibility:off&style=feature:road|element:all|visibility :off – WiseGuyEh

    +0

    ああ、それらの写真もあなたのためにうまくいくなら、それはさらに良いことです。私はちょうどあなたが本当の衛星写真を必要としていると仮定していました。水は常に同じ色(少なくともあなたの画像内で見える)でなければならないので、それらの写真を実際に作成すると、しきい値設定がより簡単になります。これにより、ヒストグラムのピークがはるかに高くなり、しきい値処理が簡単になります。これらのピクチャでは、YCbCrに変換する部分をスキップすることもあります。なぜなら、水には、RGBピクチャの青いチャネルの特定の値があります。これは、土地にあるものとはかなり異なるはずです。 – evident

    1

    をいじるすることなくextremley有用な画像を生成しました各ピクセルは2つのクラス(土地、海)の1つになります。最も簡単なアプローチの1つは、しきい値処理を使用することです。 >トンt

  • pixel value場合
    1. がしきい値を定義 - >割り当てるピクセルが
    2. 海にピクセルを割り当てるに着陸する
    3. (通常は、あなたがピクセルクラスを追跡するビットマップを、持っています)

    土地と海の質量を簡単に区別できる場合、このアプローチは最も効果的ですので、ピクセルのhue valueを比較することをお勧めします(青と緑の間のしきい値を見つける)。