multifocal-stitching

Algorithms and tools for stitching microscopy images taken at different focal lengths


License
Other
Install
pip install multifocal-stitching==0.2.1

Documentation

Multifocal Image Stitching

Documentation Build Status
Build Status

This package aims to:

  • Accurately compute translation parameters between two images taken with a translation and focus change
  • Be tolerant of high levels of noise and blurriness caused by the focus change

This package does not:

  • Account for other non-translational camera models
  • Calculate subpixel-level stitching coordinates
  • Perform focus stacking or blending of images in any manner

Examples

Matching using low-frequency features:

Matching using high-frequency features:

Installation

To install from pypi:

pip install multifocal-stitching

Usage

Ensure the images to be stitched are sequentially named in <dir>, then run:

python -m multifocal_stitching <dir>

Most images can be stitched successfully with the default settings. To fine-tune settings with the CLI:

python -m multifocal_stitching -h
usage: __main__.py [-h] [-v] [--ext EXT] [--imgs IMGS [IMGS ...]] [--no_merge] [--workers WORKERS]
                   [--min_overlap MIN_OVERLAP] [--early_term_thresh EARLY_TERM_THRESH]
                   [--use_wins USE_WINS [USE_WINS ...]] [--peak_cutoff_std PEAK_CUTOFF_STD]
                   [--peaks_dist_threshold PEAKS_DIST_THRESHOLD]
                   [--filter_radii FILTER_RADII [FILTER_RADII ...]]
                   [--stitching_result STITCHING_RESULT] [--result_dir RESULT_DIR]
                   [--resize_factor RESIZE_FACTOR] [--save_gif]
                   dir

positional arguments:
  dir                   Base directory

options:
  -h, --help            show this help message and exit
  -v, --verbose         Increase output verbosity (default: False)
  --ext EXT             Filename extension of images (default: .jpg)
  --imgs IMGS [IMGS ...]
                        Stitch only provided images in provided order, otherwise will run in batch
                        mode over all images in directory (default: None)
  --no_merge            Disable generating merged images (default: False)
  --workers WORKERS     Number of CPU threads to use in FFT (default: 2)
  --min_overlap MIN_OVERLAP
                        Set lower limit for overlapping region as a fraction of total image area
                        (default: 0.125)
  --early_term_thresh EARLY_TERM_THRESH
                        Stop searching when correlation is above this value (default: 0.7)
  --use_wins USE_WINS [USE_WINS ...]
                        Whether to try using Hanning window (default: (0,))
  --peak_cutoff_std PEAK_CUTOFF_STD
                        Number of standard deviations below max value to use for peak finding
                        (default: 1)
  --peaks_dist_threshold PEAKS_DIST_THRESHOLD
                        Distance to consider as part of same cluster when finding peak centroid
                        (default: 25)
  --filter_radii FILTER_RADII [FILTER_RADII ...]
                        Low-pass filter radii to try, smaller matches coarser/out-of-focus features
                        (default: (100, 50, 20))
  --stitching_result STITCHING_RESULT
                        Stitching result csv file (default: stitching_result.csv)
  --result_dir RESULT_DIR
                        Directory to save merged files (default: merged)
  --resize_factor RESIZE_FACTOR
                        Whether to resize the images saved by a factor (default: 1)
  --save_gif            Whether to save a gif alternating between the merged files (default: False)