Search code examples
image-processinggistraining-datasatellite-image

Writing an image processing application for analysis of satellite imagery


I have to start work on application for analysis of satellite imagery to identify some man made structure. I would like to use C or Java for this.

For satellite I am planning to use Google Maps data.

I have three questions here:

  1. What is best source for GIS data besides Google Maps/earth.
  2. Best language to write such an application considering i will have to use third-party APIs
  3. Is there a open image processing engine available which identifies man made structures?

Thats a lot of questions but I hope the smarter guys here can help me here.


Solution

  • Overly processed imagery such as Google or Bing maps is a horrible source of imagery for performing feature extraction or feature recognition. Usually, you want the most unprocessed, raw form possible with camera models... of course, if you don't have access to this sort of data, then you have to work with what you have.

    A more important consideration of Google Maps/Earth imagery is that you may run afoul of their License Agreement. I suggest you check it before you decide on their data as your imagery source. In particular, if you bypass their API's, you've violated their license agreement.

    As far as libraries and langauges, there are dozens of machine vision libraries available. I can't recommend one over the other as I've only been a down-stream consumer of their results. My understanding of the problem is that the biggest concern is how you build the "models" to compare against... i.e. how do you give the system an "example" of what you're looking for.

    Once you've found a library, then you can make a decision on the language. Generally, a high-level language like Python or Matlab is used for this kind of prototyping. Once a method has been found, then conversion to a "higher performance" language is done--if necessary.

    Personally, I'd probably use Python because (1) it's freely available, (2) has a significant community in the scientific and research worlds, and (3) can interop with a wide variety of languages and platforms.