POCShift

Estimates the translation between two noisy images with phase-only correlation.
927 Downloads
Updated 27 Oct 2014

View License

Phase-only correlation is broadly used to correct pure translation shift between two images. This code uses a frequency domain-filtering to handle noise.
Usage:
shift=POCShift(fixed, moving); % for a max cut-off of 60%
shift=POCShift(fixed, moving, C); % with 0<C<1 for a max cut-off of 100*C%
shift=POCShift(fixed, moving, 0); % to disable filtering

'fixed' and 'moving' must be of consistent size.
The algorithm works as follows:

1. The FFT of both images is calculated as well as the normalized cross spectrum R.
2. The inverse Fourier transform r of a low-pass filtered R is computed with a cut-off frequency varying from 5% to 'cutoff' (default is 60%). Use cutoff=0 to disable filtering.
3. The translation is computed from the position of the peak in r
Ref: Takita et al. High-accuracy subpixel image registration based on phase-only correlation IEICE transactions on fundamentals of electronics, communications and computer sciences 86(8), 1925-1934, 2003.

Cite As

Jérémie Guignard (2024). POCShift (https://www.mathworks.com/matlabcentral/fileexchange/46978-pocshift), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2013a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Geometric Transformation and Image Registration in Help Center and MATLAB Answers
Acknowledgements

Inspired by: ExtPhaseCorrelation

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.2.0.0

Input parser added for robustness.

1.1.0.0

Fixed description formatting, added to watch list.

1.0.0.0