In this project I worked on creating an image mosaic out of pictures I took. I learned how to compute homographies and how to use them to warp images.
In this part I took two pictures of a house from the same point of view but with different view directions. You can see the pictures below. Also, I computed the point correspondance between the two images. I calculated correspondances between 38 points.
Building 1
Building 2
Building 1 Point Correspondances
Building 2 Point Correspondances
For this part I do not have any images to show. Please look at the code for a working implementation to compute the homography between the images above. To compute H I set up the Linear System of Equations (Ah = 0) and solved it by computing the SVD of A. The vector h corresponds to the 8 column of V (right eigenvector). The section below will show that my implementation worked since I will be warping images!
In this section I implemented the warpImage function. I implemented using inverse warping. I used RectBivariateSpline as the interpolation function. Below I compare my warp result with the warp result using sk.transform.warp. As you can see both results are the same except that in my implementation I do not set the pixel values of out of bounds coordinates to be black. This is something I will fix for phase 2, however, the important observation is the the image was warped and has the same dimensions as the one returned by sk.transform.warp.
Warp of Building 1 into the computed homography (my implementation)
Warp of Building 1 into the computed homography (sklearn implementation)
To be Implemented in Part 2
To be Implemented in Part 2