project image

Image Warping and Mosaicing

Shoot and Digitize Pictures

In order to ensure the correctness of the homography, and test image warping, I used the following images taken from my iPhone camera.

For the image mosaicing, I collected the following three sets of images from around Berkeley.

Recovering homographies

To annotate the points for the two images that I used for testing, I used my code from project 3 that uses matplotlib's ginput method. For example, I show the annotations in two images below (more are available in the Jupyter notebook):

Image Rectification

Using the image warp function, and by defining four corresponding points, the above two images were rectified to:

Note that two different sets of points had to be used (found out by trial/error), because of the difference in the shapes of the two objects.

Image Mosaic

The images above were transformed using weighted averages, and this produced the following mosaics:

Lessons Learnt

Images that have thin lines that stand out and need to line up (e.g. the third image above) requires very precise specification of the corresponding points in the two images for the wires to line up.

Complicated techniques need to be used for merging the warped images, otherwise the join points of the two images are visible in well-lit regions.

Harris Interest Point Detector

The following images show the harris points on the images above:

Adaptive Non-Maximal Suppression

The following images show the points after the Adaptive Non-Maximal Suppresion on the images above:

Feature Descriptor & Feature Matching

The following images show the points after the feature matching on the images above:

Image Mosaic after RANSAC

The following images show the points after the image warping on the images above: