A Python package for fast and robust Image Stitching

lukasalexanderweber lukasalexanderweber Last update: Mar 27, 2023

stitching

A Python package for fast and robust Image Stitching.

Based on opencv's stitching module and inspired by the stitching_detailed.py python command line tool.

inputs

result

Installation

Use pip to install stitching from PyPI.

pip install stitching

Usage

The command line interface (cli) is available after installation

stitch -h show the help

stitch * stitches all files in the actual directory

stitch img_dir/IMG*.jpg stitches all files in the img_dir directory starting with "IMG" and ending with ".jpg"

stitch img1.jpg img2.jpg img3.jpg stitches the 3 explicit files of the current directory

Or use the Stitcher class in your script

import stitching

stitcher = stitching.Stitcher()
panorama = stitcher.stitch(["img1.jpg", "img2.jpg", "img3.jpg"])

Specify your custom settings as

settings = {"detector": "sift", "confidence_threshold": 0.2}
stitcher = Stitcher(**settings)

Tutorial

This package provides utility functions to deeply analyse what's happening behind the stitching. A tutorial was created as Jupyter Notebook. The preview is here.

You can e.g. visualize the RANSAC matches between the images or the seam lines where the images are blended:

matches1 matches2 seams1 seams2

Literature

This package was developed and used for our paper Automatic stitching of fragmented construction plans of hydraulic structures

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

Run tests using

python -m unittest

Please make sure to lint all pull requests.

Lint the changed files

pre-commit install && pre-commit run

License

Apache License 2.0

Subscribe to our newsletter