6

I would like to verify that my understanding of the fundamental matrix is correct and if it's possible to compute F without using any corresponding point pairs.

The fundamental matrix is calculated as F = inv(transpose(Mr))*R*S*inv(Ml) where Mr and Ml are the right and left intrinsic camera matrices, R is the rotation matrix that brings the right coordinate system to the left one, and S is the skew symmetric matrix

S = 0    -T[3]   T[2]  where T is the translation vector of the right coordinate system 
    T[3]     0  -T[1]  from the left.
   -T[2]  T[1]      0

I understand that the fundamental matrix can be computed with the 8-point algorithm, but I do not have any point correspondences. However, both of my cameras are calibrated, so I have all intrinsic and extrinsic parameters. From the definition of the fundamental matrix above, it is possible to compute F with these parameters alone, right?

(The problem I experience is that the fundamental matrix seems wrong when calculated from its definition. At the moment, I would just like to know if my understanding above is correct.)

Booley
  • 819
  • 1
  • 9
  • 25
  • 2
    If you have calibrated your cameras and have the extrinsic and intrinsic parameters, then yes you don't need the point correspondences. The point correspondences are used when **you don't know** the parameters of the camera (a.k.a. uncalibrated) and want to determine the Fundamental Matrix just from the point correspondences. How are you calibrating the cameras? Is there code you can show us? – rayryeng Jul 16 '14 at 14:51
  • @Booley Hi I have a question regarding the skew matrix you mentioned above in the F matrix formula. If my two cameras have the following extrinsic params: {1,0,0,15 | 0,1,0,0 | 0, 0, 1, 0} and {1,0,0,25 | 0,1,0,0 | 0, 0, 1, 0} the skew between them would be: ? {0, 0, 0 | 0, 0, -10 | 0, 10, 0} trying to compute the Fundamental matrix too, to try find the corresponding x' point for x using F as stated above. – Luke Zammit Apr 04 '15 at 13:46

2 Answers2

0

If you have the rotation and translation of each of the cameras relative to a common coordinate system, then you can compute the rotation and translation between the cameras, and then use the formula you have cited to compute the fundamental matrix.

A better way to go would be to calibrate both cameras together as a single stereo system. The latest release (2014a) of the Computer Vision System Toolbox lets you do that. See this example.

Dima
  • 38,860
  • 14
  • 75
  • 115
  • Hi I have a question. If my two cameras have the following extrinsic params: {1,0,0,15 | 0,1,0,0 | 0, 0, 1, 0} and {1,0,0,25 | 0,1,0,0 | 0, 0, 1, 0} the skew between them would be: ? {0, 0, 0 | 0, 0, -10 | 0, 10, 0} trying to compute the Fundamental matrix too, to try find the corresponding x' point for x using F as stated above – Luke Zammit Apr 06 '15 at 08:58
0

I would prefer to do it like the equations in Chapter 9 of "Multiple View Geometry". I have verified these in Matlab. It is right.

If you can get both intrinsic and extrinsic matrix of both cameras, you can calculate the F matrix like:

F = [e']_x * P' *p^+

(Please refer to pp244 of "Multiple View Geometry" for detailed definitions)

Alan
  • 1,582
  • 1
  • 13
  • 11