Visual Perception: Epipolar Geometry

Epipolar Geometry basics like Essential Matrix, Fundamental Matrix, Triangulation, Feature Matching are explained with their MATLAB code implementations

Yağmur Çiğdem Aktaş


We learned how to use a projective camera and how to calibrate it. In this post, we will learn Epipolar Geometry, which is the intrinsic projective geometry between two views. Two views mean now we will learn how to work with more than 1 camera to perform different tasks!

Let’s take a look at Epipolar Geometry structure and its base terms:

Image by Author

By looking at these terms, we can understand that we will have an epipolar line for each projected point, whereas we have only 1 epipole for 1 image plane. And all the epipolar lines on the same image plane intersects on the epipole.

Another brief note I want to add is that don’t forget that until now we worked only with 1 camera which means we worked with monocular cameras while for epipolar geometry we need at least 2 monocular or 1 stereo camera which provides us multiple views.

What are we able to do using this geometry?

  • We can reconstruct 3D world points using the pairs of 2D points coming from the left and right images.
  • We can find camera intrinsic and extrinsic parameters using 2D matched points

Let’s start with our first task to find the match of a 2D point we have in 1 image in the other image plane

Essential Matrix

Essential Matrix is the base 3x3 matrix that encodes the epipolar geometry of two views where the cameras are already calibrated.

Since CC’, Cq, and C’q’ vectors are three vectors that lie on the same epipolar plane we have the following equations:

Image by Author

Finally, we have the relationship between the Essential matrix and a 2D image point pair!

Properties of Essential Matrix

  • l = εq’ and l’ = Transpoze(ε)q
  • εe’ = 0 and Transpoze(ε)e = 0