Problem in rotation detection for the angles less than 1 degree using Fourier-mellin transform

2 visualizzazioni (ultimi 30 giorni)
Hello,
I am using Fourier-Mellin Transform for the detection of rotation and scale in the image registration process. I am able to detect all angles with the good accuracy but no luck with the angles less than 1 degree. Sub-pixel accuracy was achieved by interpolation onto an array with finer sampling in the stage of cross correlation calculation. Are there any restrictions in this method that I am missing? Is this method in general able to detect such a small transformations? I also tried to use very simple images as example but still couldn't trace the problem. I use polartrans function for the log-polar transformation, then take fft2 of the result images and calculate the peak of cross correlation using dftregistration function.
Thank you in advance
  3 Commenti
Anfisa
Anfisa il 3 Ott 2013
Hello Youssef,
But I am able to detect the translation parameters of any scale and with the precision up to 4 significant digits? Is it different for rotation and scale?I suppose that I am missing smth in log polar transform...
Alex Taylor
Alex Taylor il 4 Ott 2013
Modificato: Alex Taylor il 4 Ott 2013
Youssef,
Do you have a paper citation that discusses this theoretical limitation of the phase correlation approach for resolving rotation? If so, I'd appreciate it, I'd be interested to read it.

Accedi per commentare.

Risposte (2)

Sean de Wolski
Sean de Wolski il 3 Ott 2013
Have you tried using imregister?

Alex Taylor
Alex Taylor il 3 Ott 2013
What angular resolution are you using during the log-polar transformation on each of your images? This would also impact the accuracy with which you can recover small values of theta.
  2 Commenti
Anfisa
Anfisa il 3 Ott 2013
Alex: As a parameter for log polar transformation ( polartrans ) I use dimension of the image as a number of radius values ( nrad ) and 360 as a number of theta values ntheta (to tell the truth I don't understand here 100% so I might be mistaken in this). I tried to increase the last parameter, and it helped to decrease the error between obtained and predefined rotation angle for some angles. But at some point it was increasing again.
Alex Taylor
Alex Taylor il 4 Ott 2013
Modificato: Alex Taylor il 4 Ott 2013
If you are using 360 for your number of samples in theta and you are implementing the algorithm from Reddy/Chatterji:
Then you are either sampling over 180 degrees or 360 degrees depending on whether you are taking advantage of the symmetry of the FFT for real valued inputs (As described in Reddy-Chatterji).
Assuming you are sampling the FFT over the full 360 degrees and you have 360 angular samples, then you can quickly see that your angular resolution is 1 degree/sample. This means that you are undersampling in the log-polar domain if you hope to be able to recover rotations of less than a degree via correlation.
You still may find that your ability to recover small angles varies across image data sets and the rotation angle, but this is at least one thing you should be aware of in choosing your log-polar sampling resolution.

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by