Ingredients are a colored infrared image (CIR),
GRASS GIS and some of its features (i.segment, i.segment.hierarchical, g.gui.mapswipe,) and a tricky landscape with heterogeneous geomorphology and heterogeneous forest stands with various combinations of spruce (
Picea abies), fir (
Abies alba), pine (
Pinus sylvestris), beech (
Fagus sylvatica), ash (
Fraxinus excelsior) and maple (
Acer pseudoplatanus).
Image segmentation or object recognition is the process of grouping similar pixels into unique segments, also refered to as objects.
GRASS GIS features:
- i.segment (manual, src) identifies segments (objects) from imagery data.
- i.segment.hierarchical (manual, src) performs a hierarchical segmentation on imagery data by using i.segment.
- g.gui.mapswipe (manual) compares interactively two maps by swiping a visibility bar.
The resolution of the CIR is 0,2m:
g.region -p
projection: 99 (Transverse Mercator)
zone: 0
datum: hermannskogel
ellipsoid: bessel
north: 252452
south: 251798.6
west: -112476.2
east: -111678.2
nsres: 0.2
ewres: 0.2
rows: 3267
cols: 3990
cells: 13035330
|
colored infrared image (CIR) |
Important options of i.segment are:
- minsize = Minimum number of cells in a segment.
- threshold = Difference threshold between 0 and 1; 0 merges only identical segments; threshold = 1 merges all.
Let's do 2 runs of i.segment.hierarchical
i.segment.hierarchical group=cirgroup thresholds=0.02,0.05,0.1,0.15,0.2,0.25,0.3,0.35 output=cirsegmin10 outputs_prefix=segmin10__%.2f minsizes=10 memory=1000 iterations=20 processes=4
i.segment.hierarchical group=cirgroup thresholds=0.02,0.05,0.1,0.15,0.2,0.25,0.3,0.35 output=cirsegmin20 outputs_prefix=segmin20__%.2f minsizes=20 memory=1000 iterations=20 processes=4
and load some results with different thresholds and minsizes to g.gui.mapswipe:
scene 1:
|
threshold=0.2 minsize=10 |
|
threshold=0.2 minsize20 |
|
threshold=0.3 minsize20 |
|
threshold=0.3 minsize=10 |
|
threshold=0.35 minsize=10 |
|
threshold=0.35 minsize20 |
scene 2:
|
threshold=0.2 minsize=10 |
|
threshold=0.2 minsize20 | | |
|
threshold=0.3 minsize=10 |
|
threshold=0.3 minsize20 |
|
threshold=0.35 minsize=10 |
|
threshold=0.35 minsize20 |
scene 3:
|
threshold=0.2 minsize=10 |
|
threshold=0.2 minsize20 |
|
threshold=0.3 minsize=10 |
|
threshold=0.3 minsize20 |
|
threshold=0.35 minsize=10 | | | |
|
threshold=0.35 minsize20 |
Nice open source tools for image segmentation! Have also a look at the
Orfeo Toolbox!