5.0

5.0 | 11 ratings Rate this file 155 downloads (last 30 days) File Size: 231.98 KB File ID: #18401

Efficient subpixel image registration by cross-correlation

by Manuel Guizar

 

21 Jan 2008 (Updated 21 Jan 2008)

No BSD License  

Registers two images (2-D rigid translation) within a fraction of a pixel specified by the user.

Download Now | Watch this File

File Information
Description

Registers two images (2-D rigid translation) within a fraction of a pixel specified by the user. Instead of computing a zero-padded FFT (fast Fourier transform), this code uses selective upsampling by a matrix-multiply DFT (discrete FT) to dramatically reduce computation time and memory without sacrificing accuracy. With this procedure all the image points are used to compute the upsampled cross-correlation in a very small neighborhood around its peak. This algorithm is referred to as the single-step DFT algorithm in [1].

[1] Manuel Guizar-Sicairos, Samuel T. Thurman, and James R. Fienup, "Efficient subpixel image registration algorithms," Opt. Lett. 33, 156-158 (2008).

Please refer to the attached HTML for more details and a sample implementation.

Acknowledgements
This submission has inspired the following:
Automatic 2d Rigid Body Image Registration, STXM data analysis script collection - STACKLab
MATLAB release MATLAB 7.4 (R2007a)
Zip File Content  
Published M Files Efficient subpixel image registration by cross-correlation.
Other Files efficient_subpixel_registration.m,
html/efficient_subpixel_registration.png,
html/efficient_subpixel_registration_01.png,
dftregistration.m,
html/Thumbs.db,
html/efficient_subpixel_registration_02.png
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (19)
28 Jan 2008 Chris Cookson

easy to use, extremely fast, and easy to use. amazing work.

28 Jan 2008 Chris Cookson

did i mention it was easy to use?

12 Feb 2008 Matt Sochor

Very good and excellent documentation to get you started with the syntax. Great job and thanks for including the paper reference.

03 Mar 2008 Jiang Jun

Thank you for you job, I will enjoy it.

27 Apr 2008 Zhi Zhang

Excellent Work!

23 Feb 2009 Robert Reed

Elegant solution in simple understandable code + sound documentation.

23 Feb 2009 Petter

Always nice to see a published .m, but the images tell us nothing. A zoomed in display, abs error or something would be more relevant than two identially looking images.

23 Feb 2009 Robert Reed

Is this method less robust to noise than standard upsampling?

26 Feb 2009 Chaos

works but i had to re=write code for UINT16 images, very fast and accurate.

26 Feb 2009 Chaos

works but i had to re=write code for UINT16 images, very fast and accurate. why are you using double? do you really need that accuracy in the dft?

26 Feb 2009 Chaos

 forgot to rate. wow this code is brutally fast and accurate, if you define a ROI even faster. this code needs some kind of award. how much faster would it be if it was compiled in to a mex?

20 Apr 2009 Manuel Guizar

Thanks to everyone for the positive comments! The published M-file is intended to get the user started with the syntax and explain what the code does. For technical documentation please refer to the reference above [1] and references within.

20 Apr 2009 Manuel Guizar

This method is equally robust to noise as the standard FFT upsampling, but much faster. It computes the same upsampled cross correlation but only in a small neighborhood around the peak.

05 May 2009 Tobias Henn

Great Work - fast and accurate!!!

27 Jul 2009 Lucas Koorneef

Works right out of the box. Thanks for sharing !

28 Jul 2009 Eric

Tremendously useful! Thanks very much.

12 Oct 2009 su su

I want to register the pair of visible and theraml images with this one, but I don't get the required resutl.

16 Oct 2009 Raymond Cheng

Thanks for your sharing.

15 Dec 2009 Sean

Is there a way to extend this to 3D CT images?

Thank you!

Please login to add a comment or rating.
Tag Activity for this File
Tag Applied By Date/Time
geometric transformation Manuel Guizar 22 Oct 2008 09:43:20
image registration Manuel Guizar 22 Oct 2008 09:43:20
image Manuel Guizar 22 Oct 2008 09:43:20
alignment Manuel Guizar 22 Oct 2008 09:43:21
registration Manuel Guizar 22 Oct 2008 09:43:21
crossco Manuel Guizar 22 Oct 2008 09:43:21
cross Manuel Guizar 22 Oct 2008 09:43:21
correlation Manuel Guizar 22 Oct 2008 09:43:21
subpixel Manuel Guizar 22 Oct 2008 09:43:21
alignment Liu weihao 04 Aug 2009 23:07:51
image registration kumar kaushal 11 Aug 2009 01:03:13
 

MATLAB Central Terms of Use

NOTICE: Any content you submit to MATLAB Central, including personal information, is not subject to the protections which may be afforded information collected under other sections of The MathWorks, Inc. Web site. You are entirely responsible for all content that you upload, post, e-mail, transmit or otherwise make available via MATLAB Central. The MathWorks does not control the content posted by visitors to MATLAB Central and, does not guarantee the accuracy, integrity, or quality of such content. Under no circumstances will The MathWorks be liable in any way for any content not authored by The MathWorks, or any loss or damage of any kind incurred as a result of the use of any content posted, e-mailed, transmitted or otherwise made available via MATLAB Central. Read the complete Terms prior to use.

Contact us at files@mathworks.com