cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - When posting, your subject should be specific and summarize your question. Here are some additional tips on asking a great question. X

Sub pixel registration methods?

PhilipOakley
5-Regular Member

Sub pixel registration methods?

Hi,

I'm doing some sub-pixel image registration algorithms at the moment. I've been using the classic FFT based convolution to get to pixel level accuracies.

I start with the two image extracts A and B. I then apply a weighting/masking/apodisation to soften the edges. The patches are then FFT'd adn each frequency component normalised to unity if it is above the base band noise (a known prior). I do the complex conjugate product (schurr/excel style) which creates the phase difference of each component. I can then do an inverse FFT to see where the phase correlation spike is located, which indicates the image shift. The shift value is obviously an integer number of pixels.

One method of increasing the resolution is to add a border of zeros around the FTT so as to produce an effective interpolation around the original peak, but this is 'expensive'

My question is does anyone know of any alternative (preferably fast) approaches to recovering the phase slope from the patch of phase values? The phase values are of the cos(t)+i.sin(t) type and the phase will wrap across the patch.

I'm looking for suggestions as to methods I can look up, rather than doing it directly in MathCAD. The main part I'm trying to find is that it should achive sub-pixel level accuracy and be at least as fast as the inverse FFT.

Philip

5 REPLIES 5

Here's an old worksheet from Xavier. It's for 1D data, not 2D, but you might find some useful ideas in it.

PhilipOakley
5-Regular Member
(To:RichardJ)

Looks interesting.

I see that a 2nd order (parabolic) fit is found to fit the peak of the correlation.

I'll have a look at what that might do for my fit using phase correlation. I'll need to do a 2-d parabola...

Philip

regress will fit a 2D quadratic for you. That should work.

Hi,

2D images have 3 DOF: 2 translation and 1 rotation.

Assuming the same spatial distortions (camera, etc.), get close (<1.5 px) with overlaying small patches at corners and center (translation only here).

There are better algorithms, but you could simply cross-correlate/FFT etc**. two perpendicular stripes,

Width of stripe averaged w/apodization to make insensitive to its narrow direction.

Sandy

** Better algorithms adjust to strengths of slopes and local noise.

PhilipOakley
5-Regular Member
(To:SandyWarshaw)

Sandy,

At this stage we are using small local patches, so that we get local [Sub-Pixel] motion, but we then have to join all the estimates together to get a 'world' rotation estimate (e.g. quaternion). The cameras do give a wide field of view so spherical projection issues are apparent, so if you have any references to those better algorithms I'd be grateful.

The sub-pixel motion estimates are great when we either have small motions we need to track, or in the rotation regions wher the lever arm is short.

Philip

Top Tags