Name Last modified Size Parent Directory - IDL_bug_demos/ 01-Jul-2008 23:38 - DSCN3316.JPG 07-May-2006 21:13 1.1M ck_convol.html 03-Jun-2006 15:28 5.8K ck_convol.jpg 03-Jun-2006 15:26 18K ck_convol.pro 03-Jun-2006 15:34 7.6K convolf.pro 08-Jun-2006 21:19 1.7K coregistrate.pro 02-Jul-2008 00:08 15K displayscale.pro 12-Jun-2006 10:48 1.9K pnoise.pro 01-Jul-2008 23:05 881 rebin_coords.pdf 10-Jun-2006 21:13 63K seed.sav 02-Jul-2008 10:25 2.2K test4.pro 01-Jul-2008 23:49 6.9K test4QuickStart.sav 01-Jul-2008 23:41 3.0M test4flowchart.pdf 02-Jul-2008 09:32 1.4M
Montana State University
Image Coalignment Workshop
2008 July 2
COREGISTRATE is an IDL program for coregistration of images. Its features are:
For a detailed demo of COREGISTRATE, download the contents of this directory (everything is included in coregistrate.tar), open IDL, and .run test4. The source code is well documented.
The IDL implementation is coregistrate.pro, which was developed for MOSES data analysis. The algorithm uses an amoeba (downhill simplex) method to optimize the positioning of an arbitrary number of tie points that translate, rotate and distort the image.
Two different heuristics for image alignment are built in. One is based on cross-correlation, while the other is mathematically similar to a chi squared statistic. For two images that are sufficiently similar, the chi squared method typically performs best, as it exhibits a sharper minimum than the cross correlation.
The demonstration script, test4.pro, is summarized in test4flowchart.pdf.
Presently, the choice of image alignment heuristic is hardwired in the source code. Sorry about that. If you feel like making it more elegant, please share the modified source with me.
IDL's built-in C_CORRELATE function exhibits edge effects that bias the coregistration of data. For COREGISTRATE, I therefore implemented a modified cross-correlation function. A C_CORRELATE based cross correlation heuristic is also included in COREGISTRATE, just to demonstrate its poor performance.
In the course of developing COREGISTRATE, I found at least two bugs in IDL: one on POLYWARP, and one in CONVOL. Both try to provide a mechanism for handling bad data, but neither really works. The bugs were submitted to RSI, and my demonstration code is in IDL_bug_demos. My workaround for CONVOL is called CK_CONVOL.
Page maintained by Charles Kankelborg