Here are all of the paired photos I took for this project. Due to the shelter in place currently in effect, I took all of my pictures inside the game Minecraft. This allowed me to build/use any structure, as well as know the planarity of structures, and easily change the field of view or location of my picture.
For this section, I wrote code which can estimate the homographic transformation from one set of points to another using least squares to minimize the error in a linear equation of the transformation parameters. Then, I use inverse warping to transform the original images. By specifying points which are frontal-parallel, I can warp an image where the planar surfaces are misaligned with the camera view into an image where they are more closely aligned.
By warping one of two images of different perspectives into the other, then blending the result, one can create mosiacs or panoramas. With manually specified correspondences, the final images are not perfectly aligned and have some ghosting, but I tried to get them as close as possible to the appearance of a single photo. For the next part of the project, I need to improve my blending and cropping of the warped images, and then implement an automatic point correspondence model.