CS 194-26 Project 4

Abe Jellinek

Introduction

In this project, we created mosaics (panoramas) of overlapping images by recovering homographies between key points in different images. In the second part, we implemented algorithms from Brown et al.'s "Multi-Image Matching using Multi-Scale Oriented Patches" to produce mosaics automatically.

Shoot and digitize pictures

I used a digital camera to shoot a couple images of a planar surface (wall of a building) along the street. I had trouble acquiring much good data using my own camera, so I ended up supplementing with images from the Internet that you'll see further down.

Recover homographies

I wrote a function compute_H that takes point matrices for two images and returns a 3x3 homography matrix. It works by stacking points into a complex matrix with two rows for each point pair and then running least-squares to find an approximation of the homography.

Warp the images

By recovering a homography between a square feature in an image and a front-facing square, we can "rectify" it (although the end result won't necessarily look perfectly realistic). I used two images from the Internet for this. You can see the results below. (Any deviations from an ideal rectification are my own bad point-selection skills).

Blend the images into a mosaic

For the images I took, shown at the top of this page:

Harris Corners / ANMS

All corners
ANMS-filtered corners

Coolest thing I learned

I don't know. This project was honestly very confusing and demoralizing for me. I could build the elements, but producing a good final mosaic output just never really worked out for me. I'm hoping that the coming assignments will be more rewarding.