CS194 Project5: 
Image Warping and Mosaicing

Sainan Chen
11/25/2020

Introduction

In this project, we are going to warp images shot from the same point but different directions and produce a mosaic. If we know several images are taken from the same camera center, or the images capture a planer surface, we can project them into a same plane and create a panorama. The mian steps include:

1. create input images which are taken from a fixed position (but may be different directions) or images from different positions but on a planar surface. Otherwise, if the images capture an uneven plane from different centers of camera, we can't project the images onto a same plane. 

2. Calculate homography matrix by manually selecting at least 4 corresponding points on adjacent images (warp to plane of one of the image) and 
front-view plane (warp to a third plane) and do Least-Square Regression.

3. Warp the image to new plane by transforming old coordinates to new coordinates by multiplying with homography matrix.

4. Blend images on a same plane to create a mosaic. 


Autostitching

In part2, I want to automatically generate corresponding points instead  of manually assign them. The steps include:

1. Find all interesting points using Harris Corner Features.

2. Supress the number of points using Adaptive Non-Maximal Suppression ANMS.

3. Use Multi-scale oriented patch MSOP to produce feature descriptors.

4. Do Point Pairs Matching based on 1-NN squared error / 2-NN squared error.

5. Use Random Sample Consensus RANSAC to find Homgraphy H.

6. Stitch the mosaic following the process 3-4 above.