Index of /kankel/coregistrate

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory  -  
[IMG]DSCN3316.JPG2006-05-07 21:13 1.1M 
[DIR]IDL_bug_demos/2008-07-01 23:38 -  
[TXT]ck_convol.html2006-06-03 15:28 5.8K 
[IMG]ck_convol.jpg2006-06-03 15:26 18K 
[   ]ck_convol.pro2006-06-03 15:34 7.6K 
[   ]convolf.pro2006-06-08 21:19 1.7K 
[   ]coregistrate.pro2008-07-02 00:08 15K 
[   ]displayscale.pro2006-06-12 10:48 1.9K 
[   ]pnoise.pro2008-07-01 23:05 881  
[   ]rebin_coords.pdf2006-06-10 21:13 63K 
[   ]seed.sav2008-07-02 10:25 2.2K 
[   ]test4.pro2008-07-01 23:49 6.9K 
[   ]test4QuickStart.sav2008-07-01 23:41 3.0M 
[   ]test4flowchart.pdf2008-07-02 09:32 1.4M 

Image Coregistration

Image Co-Registration With "Blind" Correction for Optical Distortion

Charles Kankelborg
Montana State University
Image Coalignment Workshop
2008 July 2


COREGISTRATE is an IDL image coalignment tool that I developed for MOSES data. The software aligns images with arbitrary field distortion and includes an intelligent mechanism to handle bad data. Application to MOSES data has yielded results with consistent sub- pixel accuracy. The code is documented and freely available on the web at


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, 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,, is summarized in test4flowchart.pdf.

Other stuff you might want to know

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