Difference between revisions of "Image processing"
m (extended) 
m (→Correction for topographic/terrain effects: note about "Sun's zenith = 90  Sun's elevation") 

Line 68:  Line 68:  
* simple "cosine correction" using {{cmdr.sunmask}}, {{cmdr.mapcalc}} (tends to overshoot when slopes are high)  * simple "cosine correction" using {{cmdr.sunmask}}, {{cmdr.mapcalc}} (tends to overshoot when slopes are high)  
* In {{cmdi.topo.corr}} the following correction methods are implemented: cosine, minnaert, percent, cfactor.  * In {{cmdi.topo.corr}} the following correction methods are implemented: cosine, minnaert, percent, cfactor.  
+  ** '''Note,''' that for the sun's zenith (in degrees) parameter, the equation "'''Sun's Zenith''' = '''90'''  '''Sun's Elevation'''" is generally valid  
=== Cloud removal ===  === Cloud removal === 
Revision as of 11:16, 8 January 2013
Contents
 1 Introduction
 2 Screenshots
 3 Importing
 4 Preprocessing
 5 Image classification
 6 Image segmentation
 7 Filtering
 8 Fourier Transform
 9 Canonical Component Analysis
 10 Principal Component Analysis
 11 Texture
 12 Time series analysis
 13 Enhancements
 14 Stereo anaglyphs
 15 Ideas collection for improving GRASS' Image processing capabilities
 16 Bibliography
Introduction
Satellite imagery and orthophotos (aerial photographs) are handled in GRASS as raster maps and specialized tasks are performed using the imagery (i.*) modules. All general operations are handled by the raster modules.
 imageryintro: A short introduction to image processing in GRASS 6
 Full GRASS 4.0 Image Processing manual (PDF, 47 pages)
 imagery: Imagery module help pages
 Data import is generally handled by the r.in.gdal module
Screenshots
 The imagery screenshots page
Importing
The wxGUI offers a convenient tool for single map and bulk import:
 see Importing data
Satellite Data
Ocean Color
Sea Surface Temperature (SST)
High resolution data
Orthophotos
Preprocessing
See also NASA LaRC Satellite Overpass Predictor
Geometric preprocessing/Georectification
 Georectification tool is available from the File menu in the GUI.
 i.points, i.vpoints (scanned maps, satellite images)
 i.ortho.photo (aerial images)
A multiband image may be grouped and georectified with a single set of ground control points (i.group, i.target, i.rectify).
See also the Georeferencing wiki page
Radiometric preprocessing
 use r.mapcalc to apply gain/bias formula
 LANDSAT: you can also use i.landsat.toar
from GRASS AddOns(included since 6.4)
Correction for atmospheric effects
 i.landsat.dehaze: simple darkobject/Tasseled Cap based haze minimization (from GRASS AddOns)
 i.atcorr: more complex correction but based on atmospheric models  see tutorial: Atmospheric correction
Correction for topographic/terrain effects
In rugged terrain, such correction might be useful to minimize negative effects.
 simple "cosine correction" using r.sunmask, r.mapcalc (tends to overshoot when slopes are high)
 In i.topo.corr the following correction methods are implemented: cosine, minnaert, percent, cfactor.
 Note, that for the sun's zenith (in degrees) parameter, the equation "Sun's Zenith = 90  Sun's Elevation" is generally valid
Cloud removal
 with i.landsat.acca
Image classification
See the dedicated Image classification page.
Image segmentation
 i.smap: Performs contextual image classification using sequential maximum a posteriori (SMAP) estimation.
 r.seg: Performs image segmentation and discontinuity detection (based on the MumfordShah variational model).
 i.segment: Image Segmentation
Filtering
Fourier Transform
 i.fft, i.ifft
 see also Image destriping
Canonical Component Analysis
Principal Component Analysis
 i.pca
 see also Principal Components Analysis
Texture
A series of commonly used texture measures (derived from the Grey Level Cooccurrence Matrix, GLCM), also called Haralick's texture features are available:
 r.texture: In case of panchromatic maps or limited amount of channels, it is often recommended to generate synthetic channels through texture analysis
See here and here for the formulas to calculate texture.
Time series analysis
 r.series
 see also Time series
 see also Time series development
Enhancements
Radiometric Enhancements
 i.landsat.rgb
 Decorrelation stretching with r.colors or r.mapcalc
 Density slicing with r.colors
 Principal Component Analysis with i.pca
Geometric Enhancements  Image Fusion  Pansharpening
 i.rgb.his and i.his.rgb: can be used for image fusion
 i.fusion.brovey: image fusion of panchromatic and color channels
 r.seg which performs image segmentation and discontinuity detection (based on the MumfordShah variational model). The module generates a piecewise smooth approximation of the input raster map and a raster map of the discontinuities of the output approximation. The discontinuities of the output approximation are preserved from being smoothed.
 i.pansharpen: Image fusion algorithms to sharpen multispectral with highres panchromatic channels (GRASS 7)
Optimal channel selection for color composites
Stereo anaglyphs
 see Stereo anaglyphs
Ideas collection for improving GRASS' Image processing capabilities
Below modules need some tuning before being added to GRASS 6. Volunteers welcome.
Spectral unmixing ideas
 i.spec.unmix: existing GRASS 5 module awaiting complete GRASS 6 update
 Make use of the Spectral Python (SPy) which is a pure Python module for processing hyperspectral image data
Spectral angle mapping ideas
Geocoding ideas
 i.homography: geocoding with lines (instead of points) with homography (as improved i.points; it was formerly called i.linespoints)
 support splines from GDAL (see GRASS_AddOns#Imagery_addons)
 New Georectifier: see also http://gama.fsv.cvut.cz/~landa/grass/swf/georect.html
Image matching ideas
 i.points.auto: automated search of GCPs based on FFT correlation (as improved i.points)
 Reference: M. Neteler, D. Grasso, I. Michelazzi, L. Miori, S. Merler, and C. Furlanello, 2005: An integrated toolbox for image registration, fusion and classification. International Journal of Geoinformatics, 1(1), pp. 5161 PDF
Image classification ideas
 pr: C code for classification problems
 GRASS implementation: i.pr.* source code is available here)
Stereo ideas
This is standalone stereo modeling software (DEM extraction etc). Waits for integration into GRASS.
Bundle block adjustment
Needed to orthorectify a series aerial images taken sequentially with overlap. "Histoical" method which is nowadays interesting for UAV flights with octocopters and such.
Automatec GPC search could be done by "autosift".
Available: Octave code which prepares input to an i.ortho.photo batch job (contact Markus Neteler).
Lidar LAS format
LAS Tools by M. Isenburg, Howard Butler et al.: http://www.liblas.org
las2txt  r.in.xyz in= fs=" "
Update: r.in.lidar and v.in.lidar implemented by Markus Metz (GRASS 7)
(see LIDAR)
Improving the existing code
It might be sensible to merge the various image libraries:
 GRASS 6 standard libs:
 lib/imagery/: standard lib, in use (i.* except for i.points3, i.rectify3, see below)
 imagery/i.ortho.photo/libes/: standard lib, in use (i.ortho.photo, photo.*)
 GRASS 5 (! only) image3 lib:
 libes/image3/: never finished improvement which integrated the standard lib and the ortho lib. Seems to provide also ortho rectification for satellite data (i.points3, i.rectify3)
 GRASS 5/6 image proc commands:
 merge of i.points, i.vpoints, i.points3 (see above)
 merge of i.rectify and i.rectify3 (see above)

addition of new resampling algorithms such as bilinear, cubic convolution (take from r.proj or r.resamp.aggreg)(done 10/2010)  add other warping methods (maybe lanczos or thin splines from GDAL?): Addons#i.warp
 implement/finish linewise orthorectification of satellite data
Bibliography
 Search for "GRASS GIS Image processing"  Google Scholar
 Search for "GRASS GIS Remote Sensing"  Google Scholar