https://github.com/alvgaona/mosaic
Panoramic mosaic construction from overlapping images
https://github.com/alvgaona/mosaic
computer-vision kaze mosaic opencv orb sift
Last synced: 3 days ago
JSON representation
Panoramic mosaic construction from overlapping images
- Host: GitHub
- URL: https://github.com/alvgaona/mosaic
- Owner: alvgaona
- Created: 2026-05-29T09:58:54.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-29T10:53:15.000Z (about 2 months ago)
- Last Synced: 2026-05-29T12:28:31.002Z (about 2 months ago)
- Topics: computer-vision, kaze, mosaic, opencv, orb, sift
- Language: Python
- Homepage:
- Size: 6.51 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Mosaic
[](https://pixi.sh)
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.

## Installation
The project uses [pixi](https://pixi.sh) (conda-based) to manage the environment.
1. Install pixi (if not already installed):
```sh
curl -fsSL https://pixi.sh/install.sh | bash
```
2. Install the project dependencies (Python, OpenCV, NumPy, Matplotlib):
```sh
pixi install
```
## Usage
Run the pipeline with pixi. By default it processes all three scenes (`Escena3`, `Escena4`, `Escena5`):
```sh
pixi run python mosaic.py
```
Process specific scenes:
```sh
pixi run python mosaic.py Escena5
```
Run the detector ablation study (SIFT, ORB, KAZE, BRISK):
```sh
pixi run python mosaic.py --ablation Escena5
```
Compare the outlier-filtering methods (residual, geometric, RANSAC):
```sh
pixi run python mosaic.py --filter-comparison Escena5
```
Output panoramas and diagnostic figures are written to the project directory.
## Results
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):
