Code covered by the BSD License

### Highlights from Fundamental Matrix Computation

4.75
4.8 | 5 ratings Rate this file 17 Downloads (last 30 days) File Size: 12 KB File ID: #27541 Version: 1.0

# Fundamental Matrix Computation

This package, implements the 3 standard algorithms for the computation of the fundamental matrix.

File Information
Description

The implemented algorithms are:
1- The normalized 8 point algorithm
2- The algebraic error minimization(iterative)
3- The geometric error minimization(iterative)
and are the algorithms 11.1 to 11.3 of R. Hartley and A. Zisserman "Multiple View Geometry in Computer Vision".
The geometric error minimization includes the gold standard algorithm(MLE) as well as the Sampson approximation to the geometric error.
Usage of the code should be straightforward. The inputs and outputs to the functions, their dimensions and descriptions are available in the headers of each file. try help det_F_normalized_8point for example.
In order to be able to compare the performance of the algorithms, the same criterion as the book: the residual is used(see compare_results.m).
Also, different noise models are utilized to test the robustness of the algorithms: Gaussian additive noise, uniform noise and spurious noise(which can be seen as outliers).
To get the best results, it is possible to initialize the gold standard algorithm with the estimation of F computed from the algebraic minimization algorithm.

Required Products Optimization Toolbox
MATLAB release MATLAB 7.9 (R2009b)
01 Feb 2015 kevin

### kevin (view profile)

In lines No.65 and 79 of det_F_gold.m, the Matlab built-in-function "sum" should be removed to make full use the capability of "lsqnonlin", or the nonlinear optimization is actually not on least squares objective functions, and the computational cost increases thousands of times than the right implementation.....

04 Jun 2014 Y Simson

### Y Simson (view profile)

In the function F = det_F_algebraic(x1,x2,L_COST,NORMALIZE)
on line 30 why is it necessary to input the normalized points?
Shouldn't
F_0 = det_F_normalized_8point(x1n,x2n);
be equivalent to
F_0 = det_F_normalized_8point(x1,x2);

?

Comment only
03 Jun 2014 Y Simson

### Y Simson (view profile)

Excellent Job. Thanks!

24 Jan 2014 maryam

### maryam (view profile)

21 Feb 2013 kevin

### kevin (view profile)

15 Nov 2012 Sarhat

### Sarhat (view profile)

Why the x1 and x2 vector is 3XN (cause iam confused in this I have a mtaching points from both images (x1,y1 and x2 y2) there is no z with the matching points. except if I want to include the focal length in that case I will put in z component 1 if it is not available. Do I am right or not?

Fundamental matrix estimation is equivalent to estimating the image of the other camera in the other one; therefore if the view points of the cameras wrt eachother change, different fundamental matrices will describe the relation between the two cameras. See http://en.wikipedia.org/wiki/Epipolar_geometry.

Comment only
02 Feb 2012 km g

### km g (view profile)

the fundamental matrix is always changing or just a constant between two cameras?do i need to always choose few points for getting the fundamental matrix for different kind of image? sorry for any inconvenience.

Comment only

Hi Ran,
It seems that what you're looking for is a method to compute the Essential matrix. Fundamental matrix will allow uncalibrated reconstruction which would have a projective ambiguity. For a metric reconstruction with scale ambiguity, you will need calibrated cameras and the Essential matrix.
Hope it helped,
Omid

Comment only