5

I've already computed the Fundamental Matrix of a stereo pair through corresponding points, found using SURF. According to Hartley and Zisserman, the Essential Matrix is computed doing:

E = K.t() * F * K

How I get K? Is there another way to compute E?

JuaniL
  • 107
  • 1
  • 1
  • 8

1 Answers1

13

I don't know where you got that formulae, but the correct one is E = K'^T . F . K (see Hartley & Zisserman, §9.6, page 257 of second edition)

K is the intrinsic camera parameters, holding scale factors and positions of the center of the image, expressed in pixel units.

    | \alpha_u     0     u_0 |
K = |    0      \alpha_u v_0 |
    |    0         0      1  |

(sorry, Latex not supported on SO)

Edit : To get those values, you can either:

  • calibrate the camera
  • compute an approximate value if you have the manufacturer data. If the lens is correctly centered on the sensor, then u_0 and v_0 are the half of, respectively, width and height of image resolution. And alpha = k.f with f: focal length (m.), and k the pixel scale factor: if you have a pixel of, say, 6 um, then k=1/6um. Example, if the lens is 8mm and pixel size 8um, then alpha=1000

Computing E

Sure, there are several of ways to compute E, for example, if you have strong-calibrated the rig of cameras, then you can extract R and t (rotation matrix and translation vector) between the two cameras, and E is defined as the product of the skew-symmetric matrix t and the matrix R.

But if you have the book, all of this is inside.

Edit Just noticed, there is even a Wikipedia page on this topic!

kebs
  • 6,387
  • 4
  • 41
  • 70
  • Sorry, I didn't mention that the stereo images were taken with the same camera, so K' = K, and with t() I meant the OpenCV function to transpose a matrix. So, my question now is: how can I get K (I don't know it in advance) from the images? – JuaniL Jun 02 '14 at 13:32