Skip to content

freddieb/panoramic-image-stitching

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Panoramic Image Stitching

Panoramic image stitcher based on 'Automatic Panoramic Image Stitching using Invariant Features' by Matthew Brown and David Lowe.

Example panorama

Carmel Panorama Example

Installation

Using Python 3, install:

  • numpy
  • cv2
  • argparse
  • scipy
  • ordered_set

Run

python3 ./src/stitcher/main.py <path_to_input_images_directory>

Method Overview

  1. Extract SIFT features from all images
  2. Find similar SIFT features using KD tree
  3. Verify matches using RANSAC, more inliers = good match
  4. Iteratively add each image to the bundle adjuster (with the best matches being added first)

Bundle Adjustment Notes

  • Rotation matrix is converted to rotation vectors to allow the rotation to be parameterised with fewer variables in order to reduce the problem size
  • Uses Symbolic differentiation to build the Jacobian matrix
  • Optimises for the reprojection error between matches, this bundle adjuster does not take into account the 3D projections however this will be added as an option in the future

Datasets

To Do

  • Improve RANSAC speed
  • Improve bundle adjustment speed
  • Add spherical projection for output image
  • Add gain compensation
  • Add blending

About

Panoramic image stitching using bundle adjustment

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages