ImageProcessing

ClearMap.ImageProcessing.Binary

Module for binary image processing methods, including filling of large (TB) binary images (Filling) as well as a fast parallel binary smoothing algorithm (Smoothing).

ClearMap.ImageProcessing.Clipping

Clipping

ClearMap.ImageProcessing.Differentiation

Module to calculate various gradient and curvature measures

ClearMap.ImageProcessing.Experts

This sub-package provides specialized image processing pipelines:

ClearMap.ImageProcessing.Filter

This sub-package provides various volumetric filter kernels and structure elments

ClearMap.ImageProcessing.GreyReconstruction

This morphological reconstruction routine was adapted from CellProfiler.

ClearMap.ImageProcessing.IlluminationCorrection

The module provides a function to correct systematic illumination variations and vignetting in intensity.

ClearMap.ImageProcessing.LightsheetCorrection

Module to remove lightsheet artifacts in images.

ClearMap.ImageProcessing.LocalStatistics

Module provides functions to calculate local data and statistics of an image and apply a function to those.

ClearMap.ImageProcessing.MachineLearning

This module containes image processing methods based on machine learning.

ClearMap.ImageProcessing.Skeletonization

This sub-package provides skeletonization routines for 3d image data of TB size.

ClearMap.ImageProcessing.Thresholding

This module contains fast thresholding routines.

ClearMap.ImageProcessing.Topology

This sub-package provides discrete topology support.

ClearMap.ImageProcessing.Tracing

This sub-package provides tracing routines for ClearMap

This sub-package provides routines for volumetric image processing in parallel

This part of the ClearMap toolbox is designed in a modular way to allow for fast and flexible extension and addition of specific image processing algorithms.

While most psrts contain lower level image processing methods, more specialized routines that combine the basic routines can be found in :mod”ClearMap.ImageProcessing.Experts.

Parallel Image Processing

For large volumetric image data sets from e.g. light sheet microscopy parallel processing is essential to speed up calculations.

In this toolbox the image processing is parallelized in two different ways depending on how the algorithms parallelzie.

  • Most routines allow to split volumetric data into several blocks, typically in z-direction. Because image processing steps are often non-local but still only incorporate a certan range, blocks are created with overlaps and the results rejoined accordingly to minimize boundary effects.

    Parallel block processing is handled via the ParallelProcessing module.

  • Full parallelization using memory mapping and parallel implementations via cython. The :mod:~ClearMap.ImageProcessing.Skeletonization` algorithm is an example block processing is not feasable in this situation.