Panoramic Stitching
A project I did to stitch images taken by a mobile phone into a panorama as in the picture below.
The project assumes that the optical center of the camera remains still when taking different pictures. So, a platform (cf. the picture below) was used to secure the phone's position. Any two consecutive shots were guaranteed to have overlapping areas for later post-processing calibration.
The program takes all of the images and tries to detect SIFT feature points in each image. Then the program tries to compare and match those feature points. A pair of images with a good matching result is considered "adjacent", that is, the pictures were taken in consecutive shots.
For adjacent images, we estimate the angle of the phone rotation based on the matching result, and then project them onto a sphere. By expanding the sphere, we obtain the panorama as in the picture at the top of this webpage.