#### Overview of this book

As we become more capable of handling data in every kind, we are becoming more reliant on visual input and what we can do with those self-driving cars, face recognition, and even augmented reality applications and games. This is all powered by Computer Vision. This book will put you straight to work in creating powerful and unique computer vision applications. Each chapter is structured around a central project and deep dives into an important aspect of OpenCV such as facial recognition, image target tracking, making augmented reality applications, the 3D visualization framework, and machine learning. You’ll learn how to make AI that can remember and use neural networks to help your applications learn. By the end of the book, you will have created various working prototypes with the projects in the book and will be well versed with the new features of OpenCV3.
Title Page
Mastering OpenCV 3 Second Edition
Credits
www.PacktPub.com
Customer Feedback
Preface
Free Chapter
Cartoonifier and Skin Changer for Raspberry Pi
Exploring Structure from Motion Using OpenCV
Number Plate Recognition using SVM and Neural Network
Non-Rigid Face Tracking
3D Head Pose Estimation Using AAM and POSIT
Face Recognition Using Eigenfaces or Fisherfaces

## Estimating the camera motion from a pair of images

Before we set out to actually find the motion between two cameras, let's examine the inputs and the tools we have at hand to perform this operation. First, we have two images of the same scene from (hopefully not extremely) different positions in space. This is a powerful asset, and we will make sure that we use it. As for tools, we should take a look at mathematical objects that impose constraints over our images, cameras, and the scene.

Two very useful mathematical objects are the fundamental matrix (denoted by `F`) and the essential matrix (denoted by `E`), which impose a constraint over corresponding 2D points in two images of the scene. They are mostly similar, except that the essential matrix is assuming usage of calibrated cameras; this is the case for us, so we will choose it. OpenCV allows us to find the fundamental matrix via the `findFundamentalMat` function and the essential matrix via the `findEssentialMatrix` function. Finding the essential...