Analyzing Images

Introduction

Image analysis is a wide field with lots of different techniques that would be far to many to describe here. We will, therefore, only briefly mention some of the more common ones. Don't hesitate to browse through the man pages of the imagery modules and of the raster modules for inspiration and consult the tons of litterature that exist on the topic of image anlysis (TODO: add references).

Image ratios

One quite simple way of analyzing images is by using image ratios in which you use the input of two or more frequency bands of your image in order to calculate an index (such as the often-used normalized difference vegetation index) or to enhance your image. See the relevant litterature for their uses. In GRASS you can calculate such ratios with r.mapcalc.

Factor analysis

One way of synthesizing the information contained in the different bands (which often contain overlapping, i.e. redundant, information) is the use of principal component analysis in order to perform a principal component tranformation. Thus the information contained in the different channels of your image will be reduced to fewer, mutually independent newly-created variables that can be displayed as images. GRASS offers the i.pca module for this task. Another option is a canonical component analysis with i.cca.

Fourier transformation

In order to analyze the frequency distributions of your images, for example in order to identify periodic noise, you can use Fourier transformation. In GRASS, use the i.fft module that implements the Fast Fourier Transform algorithm and "constructs the real and imaginary Fourier components in frequency space". To recreate a normal image out of the real and imaginary components, use i.ifft.

Image filtering

You can use filtering to enhance you image, for example through contrast improvement or smoothing, or to detect edges. You can obviously use r.mapcalc to construct any filter you like, but GRASS also offers the module r.mfilter which allows quite easy construction of sequential or parallel filters, possibly several at once. If you want to apply frequency filters, you can use the fft modules discussed above in combination with r.circle