Video stabilization is a classic problem in computer vision. The idea is simple – you have a video stream that's shaky, and you're trying to identify the best way to negate the motion of the camera to produce a smooth motion across images. The resulting video is easier to view and has a cinematic look.
Over the years, there have been a number of approaches being tried to solve this. Videos have traditionally been stabilized by using data available only from images, or using specialized hardware to negate physical motion in the camera. Gyroscopes in mobile devices are the middle ground between these two approaches.
In this chapter, we'll cover the following:
An Android camera application to record media and gyroscope traces
Using the video and gyroscope trace to find mathematical unknowns
Using the physical camera unknowns to compensate for camera motion
Identifying rolling shutter in the camera