POCShift
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 (2026). POCShift (https://uk.mathworks.com/matlabcentral/fileexchange/46978-pocshift), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
- Image Processing and Computer Vision > Image Processing Toolbox > Geometric Transformation and Image Registration >
Tags
Acknowledgements
Inspired by: ExtPhaseCorrelation
Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
