CS-194 Project 5A

By: Calvin Chen

Shoot the Pictures

For the beginning of this project, I had to initially take the pictures. It was important that the pictures I took overlapped enough to find correspondence, so I stood in one place and rotated my camera slightly to determine a ~50% difference between perspective between the two images.

Below are the images I took:

Recover Homographies

For this section, I found a matrix H that would be able to correspond points from my first image to my second image. The corresponding points for these images were labeled by hand, and in order to determine a system of equations that was overdetermined and could be calculated via least-squares, I needed at least 4 points, and I ended up using 8 points to conduct this transformation.

The system I set up looked similar to the following (taken from Google images):

Warp Images/Rectification

Once I extract the homography matrix for the transformation between these two sets of points, I transformed my initial image by warping it with the matrix to the second image. Afterwards, I determined different RGB pixel values through interpolation and constructed the rectified image.

Below are some examples of my images after they were transformed.

Rectifying Planar Objects

<matplotlib.image.AxesImage at 0x14f47f358>

What I learned

What I thought was interesting/cool was how these different images could be easily translated to different perspectives via simple homogenous transformations. I think with the processes I've constructed above, I can conduct functionality very similar to creating panoramas (and could possibly be the process that occurs behind the scenes in camera phones as well).