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 (2024). POCShift (https://www.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
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.