# Visual Perception: Epipolar Geometry

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

--

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:

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:

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