Uncalibrated Probabilistic Egomotion

[Go back to the main page]

It is fairly easy to extend our approach to the case of uncalibrated images. Since calibration data is not available for most standard images, we are making this available here. This code takes images as input, and gives the Fundamental Matrix as output.

Download MATLAB code: uncalib.zip license

An example of usage, using two images from the Leuven castle image sequence:

(Note: 500 correspondence distributions are quick and accurate enough to give visually appealing results. Nevertheless, our results on images with ground truth motion suggest that using many more distributions continues to improve motion estimates.)

>> c1 = rgb2gray(imread('castle.001.jpg'));

>> c2 = rgb2gray(imread('castle.002.jpg'));

>> matches = getmatches(c1,c2,500);
gabor filtering...
 [--------------------------------------------------]
doing points...
 [--------------------------------------------------]

>> F = motionF(matches,1,c1)
[--------------------------------------------------]
nonlinear searches
[--------------------------------------------------]
score:75.681225
motion =
  1.0e+003 *
    0.0012    0.0002   -0.0000    0.0001   -0.0001    1.3790   -0.2173    
1.5884
F =
    0.0000   -0.0000    0.0001
    0.0000    0.0000   -0.0008
   -0.0001    0.0008    0.0324

>> plot_ep_linesF(c1,c2,F,'horiz')



More results, from a few standard images: