How to use Log polar transformation to recognize scale n rotation invariant images
18 views (last 30 days)
Show older comments
Hi,
Can any1 explain to how to use log polar transformation to recognize images that are scale and rotation invariant. I’m trying to apply that to image stitching application.
From what I have read so far, it seems that log polar is perform on 2 images then the log polar images is cross correlated to find the similarities. However I do not understand how cross correlation of the log polar images can help me get the transformation information. Or my understanding might be completely wrong.
Please advice.
Thanks
0 Comments
Accepted Answer
David Young
on 1 Jun 2011
You can't use the log-polar transform on its own to match images where there is translation as well as scale and rotation change. One approach is to use a Fourier spectrum representation which is translation-independent, and use the log-polar representation of this to deal with the scale and rotation. Another is to iterate between estimating the translation in Cartesian space and scale/rotation in log-polar space.
To find scale and rotation correspondence, you cross-correlate the whole of the log-polar sampled images and find the peak (use zero-padding and windowing as necessary). This only works if the centres of the log-polar grids are at (or close to) corresponding points in the two original images, or alternatively if you use some translation-invariant representation such as the power spectrum.
The details go way beyond what I can deal with in a MATLAB answers discussion, I'm afraid. There was already a significant literature when I worked on this over 20 years ago (I think the seminal paper is this one by Weiman and Chaikin) and there is much more since. It may be significant, however, that modern approaches to stitching use discrete features, such as SIFT and SURF, and find correspondences, rather than using log-polar matching.
4 Comments
David Young
on 8 Jun 2011
I've edited my answer to give a little more detail - but that's about as far as I can go without starting to write code. I think the key question to ask yourself is whether you'd be better off trying to fix your SURF method - and maybe you should make that a new question.
More Answers (1)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!