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

2 ビュー (過去 30 日間)
Anfisa
Anfisa 2013 年 10 月 3 日
コメント済み: Alex Taylor 2013 年 10 月 4 日
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 件のコメント
Anfisa
Anfisa 2013 年 10 月 3 日
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 2013 年 10 月 4 日
編集済み: Alex Taylor 2013 年 10 月 4 日
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.

サインインしてコメントする。

回答 (2 件)

Sean de Wolski
Sean de Wolski 2013 年 10 月 3 日
Have you tried using imregister?
  1 件のコメント
Anfisa
Anfisa 2013 年 10 月 3 日
Sean, thank you for the suggestion. I haven't tried it because I don't have required toolbox

サインインしてコメントする。


Alex Taylor
Alex Taylor 2013 年 10 月 3 日
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 件のコメント
Anfisa
Anfisa 2013 年 10 月 3 日
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 2013 年 10 月 4 日
編集済み: Alex Taylor 2013 年 10 月 4 日
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.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeGeometric Transformation and Image Registration についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by