This project implements a panorama stitching algorithm in Python without relying on external libraries for feature detection, matching, or image alignment. The implementation includes manual corresponding points selection, homography computation, image warping, and blending to create a seamless panorama.
This project was created as part of Computer Vision Homework 2 to demonstrate the understanding and implementation of fundamental image stitching techniques. The pipeline includes:
- Manual selection of corresponding points.
- Homography computation using Singular Value Decomposition (SVD).
- Warping and blending images to produce a final panorama.
- Manual Corresponding Points Selection: Users can manually select matching points between two images.
- Homography Computation: Computes the transformation matrix using SVD to align the images.
- Image Warping: Maps pixels from one image to the other using the homography matrix.
- Blending: Combines the aligned images into a seamless panorama.
- Multiple Stitching Methods:
- Left-to-right stitching.
- Middle-out stitching.
- First-out-then-middle stitching.
-
Select Corresponding Points:
Users select matching points between images manually, ensuring accurate alignment. -
Compute Homography:
The homography matrix is computed to transform one image into the coordinate system of the other. -
Warp Images:
Images are warped using the homography matrix to align them correctly. -
Blend Images:
The overlapping areas of the images are blended to form a seamless panorama. -
Stitching Methods:
Different strategies for stitching multiple images are provided to handle different datasets effectively.
This project requires the following Python libraries:
numpy
matplotlib
opencv-python
scipy
Install them using:
pip install numpy matplotlib opencv-python scipy