Panoramic mosaic construction from overlapping images (TAVC assignment). The pipeline detects SIFT features, matches descriptors, estimates homographies via DLT, filters outliers, and blends the warped images onto a common canvas.
The project uses pixi (conda-based) to manage the environment.
-
Install pixi (if not already installed):
curl -fsSL https://pixi.sh/install.sh | bash -
Install the project dependencies (Python, OpenCV, NumPy, Matplotlib):
pixi install
Run the pipeline with pixi. By default it processes all three scenes (Escena3, Escena4, Escena5):
pixi run python mosaic.pyProcess specific scenes:
pixi run python mosaic.py Escena5Run the detector ablation study (SIFT, ORB, KAZE, BRISK):
pixi run python mosaic.py --ablation Escena5Compare the outlier-filtering methods (residual, geometric, RANSAC):
pixi run python mosaic.py --filter-comparison Escena5Output panoramas and diagnostic figures are written to the project directory.
Panoramas reconstructed for the three scenes:
| Scene | Images | Panorama |
|---|---|---|
| Scene 3 (Ría del Nervión) | 2 | ![]() |
| Scene 4 (Bermeo) | 3 | ![]() |
| Scene 5 (Picos de Europa) | 7 | ![]() |
Feature correspondences after outlier filtering (cyan: inliers; red lines: points above the error threshold):



