So I scanned some maps looking like the one below. I georeferenced and rectified the image and stored it as a .tif. Now my goal is to get a raster with one band with a value for each of the classes in the legend. If there would be no hatched legend entries I could simply use the colour of the classes, but now this dosent work. Any ideas how to solve this problem?

enter image description here

1 Answer 1


You need a decent image segmentation algorithm. I've used the Trainable Weka Segmentation function of the Fiji image processing system for this.

First, load the image, outline areas and add them to classes. Create a class for each land type, then add a few areas to each class. The more you create, the better the output will be.

enter image description here

Then you train the classifier and you can then see the result as a classified map:

enter image description here

This hasn't done too badly with the striped (and spotted) areas.

You also get the individual class probabilities. Here's the green-brown stripe probability (white=high):

enter image description here

You can save a trained classifier to run on a new image without extra training, assuming the new image uses the same colours and shadings.

  • Perfect. This does exactly what I needed.
    – sfetan
    Dec 21, 2020 at 12:23
  • 1
    There are a lot of different classifiers (via the "Settings" button) and each of those has a lot of options. This is a very deep topic and you should probably do a lot of reading! You might have to do a lot of cleanup afterwards as well, and at some point it might be easier to digitise by hand!
    – Spacedman
    Dec 21, 2020 at 12:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.