By Yan Huang (yh553) and Sean Ryan (ser99)

Design Decisions

We stuck to the algorithms outlined in lecture. Here are some of the things we did in an interesting way.

  1. We use a set to accumulate unique match IDs in RANSAC.
  2. Extra helper functions in BlendImages.cpp, e.g. clamp, iround_clamp, bounding_box.
  3. One loop for all blending; the appropriate blending factor is determined for all situations.

Panoramas

Here's pano_test as rendered by our solution:

Full Size
Interactive

Here's a panorama taken near Hollister Hall:

Full Size
Interactive

Here's the first five images from pano_test using homographies:

Full Size

Strengths & Weaknesses

Our code seems to work quite well; we visually matched the reference binary on all test cases we tried. However, as demonstrated above, homographies are not suited to 360 degree panoramas. Furthermore our code doesn't account for sub-images with different levels of saturation, giving the panoramas vertical stripes. Since the reference binary also has these flaws we will ignore them.