This page lists the most recent versions of my IDL programs for the ENVI environment discussed in my textbook Image Analysis, Classification and Change Detection in Remote Sensing, with Algorithms for ENVI/IDL,Second Revised EditionTaylor & Francis, CRC Press 2010as well as some additional, mostly experimental, routines for parallel processing with Nvidia'sCUDA and Python versions of some of the algorithms.
This page was last modified 05/16/2013 13:01:43.If you don't have ENVI/IDL, you can try out some of the algorithms on theGoogle Cloud.See also Allan Nielsen's software page for Matlab versions of the change detection algorithmsand my Python versions of IR-MAD, Radiometric Normalizationand kernel PCA.
The following libraries must be present in the IDL path before attempting to run any of the extensions:
David Fanning's Coyote LibraryAll extensions also assume that ENVI is up and running.Most of them can be integrated directly into the ENVI main menu by copying the programswith filenames of the form program_RUN.PRO to ENVI's SAVE_ADD directory.
In addition some of the extensions can take advantage of the Tech-X Corp.GPULib interface to CUDA.(These extensions will now also run without GPULib/CUDA.)
Preprocessing | DWT fusion | sharpen multispectral images with discrete wavelet transform |
---|---|---|
A trous fusion | ditto with a trous wavelet transform | |
Wang-Bovik quality index | evaluate radiometric fidelity of pansharpened images | |
C-correction | correct for solar illumination in rough terrain | |
Kernel PCA | perform nonlinear principal components analysis (can take advantage of GPULib) | |
Kernel MAF | perform nonlinear maximum autocorrelation factor analysis (can take advantage of GPULib) | |
Contour-match | get tie-points for image-image registration from invariant features | |
Supervised classification | Bayes maximum likelihood | wrapper for the ENVI ML classifier |
Support vector machine | wrapper for the ENVI SVM classifier | |
Hybrid two-layer neural network | trained with kalman filter and scaled conjugate gradient algorithms | |
Two-layer neural network | trained with scaled conjugate gradient algorithm (can take advantage of GPULib) | |
Boosted three-layer neural network | apply adaptive boosting (AdaBoost) to a sequence of neural networks | |
Gaussian kernel classification | non-parametric Parzen-window classification (can take advantage of GPULib) | |
Probabilistic label relaxation | perform postclassification filtering | |
Contingency table | calculate confusion matrices and kappa values | |
McNemar test | compare classifiers with the McNemar statistic | |
Unsupervised classification | Expectation maximization | cluster image data with a mixture of multivariate Gaussians (can take advantage of GPULib) |
FKM clustering | cluster image data with a fuzzy K-means algorithm | |
HCL clustering | cluster image data with a heirarchic agglomerative algorithm | |
Kernel K-means | cluster image data with a kernel version of K-means (can take advantage of GPULib) | |
Kohonen SOM | visualize image data with the Kohonen self-organizing map | |
Mean shift | segment images with mean-shift algorithm | |
Change detection | IR-MAD (iMAD) | apply iteratively re-weighted multivariate alteration detection |
Radcal | perform automatic relative radiometric normalization of images | |
MadView | set thresholds on MAD images | |
Bslfcpnorm | Scatterplot normalization of RED and NIR image bands | |
Miscellaneous | Structure height | use RFMs to determine height of vertical structures |
Class segmentation | Segment a classified image | |
Examples | example IDL programs from the 2nd edition | |
Solutions | some solutions to the progamming exercises in the 2nd edition | |
CUDA (experimental) | Cuda_SVD | a DLM for singular value decomposition on CUDA |
Cuda_NDVI | a DLM for calculating NDVI indices on CUDA | |
Cuda_STRETCH | a DLM for enhacement stretching on CUDA | |
Python | iMad/RADCAL | Python scripts for IR-MAD (iMAD) and RADCAL |
kPCA | Python script for kernel PCA with and without CUDA |
联系客服