Morphological operation

Synonyms
Morphological image processing
Mathematical morphology
Description

These are commands that create or process binary (black and white) images. Typical morphological operations/functions can be found here.

need a thumbnail
Description

MiNA is a simplified workflow for analyzing mitochondrial morphology using fluorescence images or 3D stacks in Fiji. The workflow makes use of ImageJ Ops3D ViewerSkeletonize (2D/3D)Analyze Skeleton, and Ridge Detection. In short, the tool estimates mitochondrial footprint (or volume) from a binarized copy of the image as well as the lengths of mitochondrial structures using a topological skeleton. The values are reported in a table and overlays (or a 3D rendering) are generated to assess the accuracy of the analysis.

example skeleton image (from https://imagej.net/plugins/mina#processing-pipeline-and-usage)

MIA

Description

ModularImageAnalysis (MIA) is an ImageJ plugin which provides a modular framework for assembling image and object analysis workflows. Detected objects can be transformed, filtered, measured and related. Analysis workflows are batch-enabled by default, allowing easy processing of high-content datasets.

MIA is designed for “out-of-the-box” compatibility with spatially-calibrated 5D images, yielding measurements in both pixel and physical units.  Functionality can be extended both internally, via integration with SciJava’s scripting interface, and externally, with Java modules that extend the MIA framework. Both have full access to all objects and images in the analysis workspace.

Workflows are, by default, compatible with batch processing multiple files within a single folder. Thanks to Bio-Formats, MIA has native support for multi-series image formats such as Leica .lif and Nikon .nd2.

Workflows can be automated from initial image loading through processing, object detection, measurement extraction, visualisation, and data exporting. MIA includes near 200 modules integrated with key ImageJ plugins such as Bio-Formats, TrackMate and Weka Trainable Segmentation.

Module(s) can be turned on/off dynamically in response to factors such as availability of images and objects, user inputs and measurement-based filters. Switches can also be added to “processing view” for easy workflow control.

MIA is developed in the Wolfson Bioimaging Facility at the University of Bristol.

Description

The macro will segment nuclei and separate clustered nuclei in a 3D image using a 2D Gaussian blur, followed by Thresholding, 2D hole filling and a 2D watershed. As a result an index-mask image is written for each input image.

need a thumbnail
Description

 

DeepCell is neural network library for single cell analysis, written in Python and built using TensorFlow and Keras.

DeepCell aids in biological analysis by automatically segmenting and classifying cells in optical microscopy images. This framework consumes raw images and provides uniquely annotated files as an output.

The jupyter session in the read docs are broken, but the one from the GitHub are functional (see usage example )

deepcell
Description

Runs fill holes operation on 3D images.

need a thumbnail
Description

This component convolves the image with maximum filter. Each voxel is set to the maximum value of its neighborhood. The neighborhood is defined by a kernel, which has a diameter of 3 voxels.

need a thumbnail
Description

This suite provides plugins to enhance 3D capabilities of ImageJ.

  • 3D Filters (mean, median, max, min, tophat, max local, …) and edge and symmetry filter
  • 3D Segmentation (iterative thresholding, spots segmentation, watershed, …)
    • 3D hysteresis thresholding with two thresholds (see 2D hysteresis for explanation).
    • 3D simple segmentation with thresholding to label 3D objects (similar to 3D objects counter).
    • 3D iterative thresholding (find optimal threshold for each object).
    • 3D spot segmentation with various local threshold estimations.
    • 3D Maxima Finder (with noise parameter)
    • 3D seeds-based watershed with automatic local maxima detection for seeds.
  • 3D Mathematical Morphology tools (fill holes, binary closing, distance map, …)
  • 3D RoiManager (3D display and analysis of 3D objects)
  • 3D Analysis (Geometrical measurements, Mesh measurements, Convex hull, …)
    • 3D Geometrical measurements (volume, surface, …) for each labelled object.
    • 3D Centroid, to compute centroids of labelled objects.
    • 3D Intensity measurements (mean, integrated density, …) in a opened image for each labelled object.
    • 3D Shape measurements (compactness, elongation, …) for each labelled object.
    • 3D Mesh Measurements after triangulation (see 3D Viewer for surface mesh computation).
    • 3D fitting by an ellipsoid and main direction computation (details here).
    • 3D convex hull (see http://rsbweb.nih.gov/ij/plugins/3d-convex-hull/index.html).
    • 3D Radial Distance Area Ratio (RDAR)
    • 3D Density, to compute density of dots, based on closest distance analysis (details here).
  • 3D MereoTopology (Relationship between objects)
  • 3D Tools (Drawing ellipsoids and lines, cropping, …)
    • Drawing 3D line
    • Drawing 3D ellipsoids in any direction
    • Drawing in stacks as volumes
    • Drawing in 3D viewer as surfaces
need a thumbnail
Description

h-Dome transformation, useful for spot detection.

Jython code example:

from de.unihalle.informatik.MiToBo.core.datatypes.images import MTBImage
from de.unihalle.informatik.MiToBo.morphology import HDomeTransform3D
from ij import IJ

imp = IJ.getImage()
mtb = MTBImage.createMTBImage( imp.duplicate() )
hdome = HDomeTransform3D(mtb, 10.0)
hdome.runOp()
mtbdone = hdome.getResultImage()
imp2 = mtbdone.getImagePlus()
imp2.show()

Description

"The plugin analyzes fluorescence microscopy images of neurites and nuclei of dissociated cultured neurons. Given user-defined thresholds, the plugin counts neuronal nuclei, and traces and measures neurite length."[...]" NeuriteTracer is a fast simple-to-use ImageJ plugin for the analysis of outgrowth in two-dimensional fluorescence microscopy images of neuronal cultures. The plugin performed well on images from three different types of neurons with distinct morphologies."

This plugin requires parameter setting: Threshold levels and scale (see more details on the related publication)

Description

EBImage provides general purpose functionality for image processing and analysis. In the context of (high-throughput) microscopy-based cellular assays, EBImage offers tools to segment cells and extract quantitative cellular descriptors. This allows the automation of such tasks using the R programming language and facilitates the use of other tools in the R environment for signal processing, statistical modeling, machine learning and visualization with image data.

EBImage is available through the Bioconductor software project (www.bioconductor.org). Strengths Lightweight Suitable for automated, scripted analyses All functions are documented with examples Modular links to R and Bioconductor software, notably imageHTS and cellHTS2 Community support via the Bioconductor mailing list Reproducible (image) analysis using the Sweave report-writing system

EBImage
Description

This is an ImageJ plugin to analyze bacterial cells. It provides a user-friendly interface and a powerful suite of detection, analysis and data presentation tools. It works with individual phase or fluorescence images as well as stacks, hyperstacks, and folders of any of these types. Even large image sets are analyzed rapidly generating raw tabular data that can either be saved or copied as is, or have additional statistical analysis performed and graphically represented directly from within MicrobeJ, making it an all-in-one image analysis solution.

need a thumbnail
Description

 

In this workflow, you can use MorphoLibJ to generate accurate morphometric measurements

  • First the fibers are segmented by mathematical morphology:
    • for example by using MorphoLibJ:
      • Create a marker image by creating a rough mask with extended regional maxima (similar to Find Max), such that you have one max per fiber
      • Use the marker controlled watershed (in MorpholLibJ/ Segmentation/ marker controlled watershed) : indicate the original grayscale image as the input, Marker will be your maxima image, select None for mask
      • it will create a label mask of your fibers
  •  In MorphoLibJ /analyze/ select Region Morphometry: this will compute different shape factors which are more robust than the ones implemented by default in ImageJ
  • Export the result table created to a csv file
  • Then for example in Matlab or R, you can apply a PCA analysis (Principal component analysis) followed by a k-means with the number of class (clusters) (different fibers type) you want to separate.
  • You can then add this class as a new feature to your csv file.
  • From this you can sort your labelled fibers into these clusters for a visual feedback or further spatial analysis
has topic
hemp analysis
Description

This imageJ/Fiji plugin provides an analysis of the granulometry inside an image by mathematical morphology. It has sevral option for the structuring element to be used, and the size domain to be tested. The output will be both a curve of the remaining content of the image against the growing size of the structuring element, and the corresponding results table that could be then exported. It can deal with grayscale images directly, no need to segment the image first. This plugin can then be used to compare different texture based on some statistical analysis of the produced curve (for exemple comparison of the geometrical means to discriminate 2 textures). It is macro recordable as well. Programming Language: java Processes: successive erosion, dilation, closing or opening -> ANALYSIS User skills: Life Scientist, developers, analysts

has topic
granulometry
Description

MorphoLibJ is a library of plugin for ImageJ with functionalities for image processing such as filtering, reconstructing, segmenting, etc... Tools are based on Mathematical morphology with more rigorous mathematical approach than in the standard tools of ImageJ in particular for surface (or perimeter) measurements which are usually based on voxel counting.  

http://imagej.net/MorphoLibJ#Measurements

Among the features:

Morphological operations :  Dilation, Erosion, Opening,  Closing , Top hat (white and black), Morphological gradient (aka Beucher Gradient), Morphological Laplacian, Morphological reconstruction, Maxima/Minima , Extended Maxima/Minima -Watershed (classic or controlled) -Image overlay -Image labelling -Geodesic diameter -Region Adjacency Graph -Granulometry curves, morphological image analysis.

 

several steps of morphological segmentation of plant tissue using MorphoLibJ.
Description

When trying to isolate objects, one strategy might be to use regular morphological operations (opening/closing) to remove small objects that are not of interest. In case small objects are made of a large number of pixels, this operation might impair the remaining objects' contours. An alternative strategy might be to use morphological reconstruction. In short, seed is placed on the image, on objects, then conditional dilation is performed from those seeds.

Here is how to proceed, using MorphoLibJ:

  1. Open an image
  2. Use the multi-point selection tool and place seeds on objects of interest
  3. Create a new image of same size, black background
  4. Transfer the selection to the new image (Edit/Selection/Restore selection)
  5. Draw (make sure you're using white foreground) the multiple point selection
  6. Launch the Morphological reconstruction plugin: Plugins > MorphoLibJ > Morphological reconstruction
need a thumbnail
Description

ImageJ native "Skeletonize" implementation. - works only with 8-bit binary image. A faster implementation is available as a plugin Skeletonize3D written by Ignacio Arganda-Carreras. Pros of this plugin is summarized here.

need a thumbnail
Description

A clear tutorial on how to write a MATLAB script to segment clustered cells.

The full script is downloadable near the bottom of the article. 

Description

Marker-controlled Watershed is an ImageJ/Fiji plugin to segment grayscale images of any type (8, 16 and 32-bit) in 2D and 3D based on the marker-controlled watershed algorithm (Meyer and Beucher, 1990). This algorithm considers the input image as a topographic surface (where higher pixel values mean higher altitude) and simulates its flooding from specific seed points or markers. A common choice for the markers are the local minima of the gradient of the image, but the method works on any specific marker, either selected manually by the user or determined automatically by another algorithm. Marker-controlled Watershed needs at least two images to run: The Input image: a 2D or 3D grayscale image to flood, usually the gradient of an image. The Marker image: an image of the same dimensions as the input containing the seed points or markers as connected regions of voxels, each of them with a different label. They correspond usually to the local minima of the input image, but they can be set arbitrarily. And it can optionally admit a third image: The Mask image: a binary image of the same dimensions as input and marker which can be used to restrict the areas of application of the algorithm. Set to "None" to run the method on the whole input image. Rest of parameters: Calculate dams: select to enable the calculation of watershed lines. Use diagonal connectivity: select to allow the flooding in diagonal directions.

need a thumbnail
Description

Morphological Segmentation is an ImageJ/Fiji plugin that combines morphological operations, such as extended minima and morphological gradient, with watershed flooding algorithms to segment grayscale images of any type (8, 16 and 32-bit) in 2D and 3D. Morphological Segmentation runs on any open grayscale image, single 2D image or (3D) stack. If no image is open when calling the plugin, an Open dialog will pop up. The user can pan, zoom in and out, or scroll between slices (if the input image is a stack) in the main canvas as if it were any other ImageJ window. On the left side of the canvas there are three panels of parameters, one for the input image, one with the watershed parameters and one for the output options. All buttons, checkboxes and input panels contain a short explanation of their functionality that is displayed when the cursor lingers over them. Image pre-processing: some pre-processing is included in the plugin to facilitate the segmentation task. However, other pre-preprocessing may be required depending on the input image. It is up to the user to decide what filtering may be most appropriate upstream.

need a thumbnail
Description

This library gives the numpy-based infrastructure functions for image processing with a focus on bioimage informatics. It provides image filtering and morphological processing as well as feature computation (both image-level features such as Haralick texture features and SURF local features). These can be used with other Python-based libraries for machine learning to build a complete analysis pipeline.

Mahotas is appropriate for users comfortable with programming or builders of end-user tools.

==== Strengths

The major strengths are in speed and quality of documentation. Almost all of the functionality is implemented in for multiple dimensions. It can be used with other Python packages which provide additional functionality.

Mahotas and all packages on which it relies are open-source.

Description

Function to perform an erosion followed by a dilation morphological operation on binary and grayscale images.

need a thumbnail
Description

A function to perform morphological operation on binary and grayscale images.

need a thumbnail
Description

VIGRA is a free C++ and Python library that provides fundamental image processing and analysis algorithms. Its generic architecture allows it to be used in many different application contexts and ecosystems. It is designed as an intelligent library (using the C++ template mechanism) which allows users to write code at a fairly high level of abstraction and optimizes away the abstraction overhead upon compilation. It can therefore work efficiently on very large data and forms the basis of ilastik and CellCognition.

Strengths: open source, high quality algorithms, unlimited array dimension, arbitrary pixel types and number of channels, high speed, well tested, very flexible, easy-to-use Python bindings, support for many common file formats (including HDF5)

Limitations: no GUI, C++ not suitable for everyone, BioFormats not supported, parallelization requires external control

Images and Multi-dimensional Arrays: templated image data structures for arbitrary pixel types, fixed-size vectors multi-dimensional arrays for arbitrary high dimensions pre-instantiated images with many different scalar and vector valued pixel types (byte, short, int, float, double, complex, RGB, RGBA etc.) 2-dimensional image iterators, multi-dimensional iterators for arbitrary high dimensions, adapters for various image and array subsets

input/output of many image file formats: Windows BMP, GIF, JPEG, PNG, PNM, Sun Raster, TIFF (including 32bit integer, float, and double pixel types and multi-page TIFF), Khoros VIFF, HDR (high dynamic range), Andor SIF, OpenEXR input/output of images with transparency (alpha channel) into suitable file formats. comprehensive support for HDF5 (input/output of arrays in arbitrary dimensions)

continuous reconstruction of discrete images using splines: Just create a SplineImageView of the desired order and access interpolated values and derivative at any real-valued coordinate.

Image Processing: STL-style image processing algorithms with functors (e.g. arithmetic and algebraic operations, gamma correction, contrast adaptation, thresholding), arbitrary regions of interest using mask images image resizing using resampling, linear interpolation, spline interpolation etc.

geometric transformations: rotation, mirroring, arbitrary affine transformations automated functor creation using expression templates

color space conversions: RGB, sRGB, R'G'B', XYZ, Lab*, Luv*, Y'PbPr, Y'CbCr, Y'IQ, and Y'UV real and complex Fourier transforms in arbitrary dimensions, cosine and sine transform (via fftw) noise normalization according to Förstner computation of the camera magnitude transfer function (MTF) via the slanted edge technique (ISO standard 12233)

Filters: 2-dimensional and separable convolution, Gaussian filters and their derivatives, Laplacian of Gaussian, sharpening etc. separable convolution and FFT-based convolution for arbitrary dimensional data resampling convolution (input and output image have different size) recursive filters (1st and 2nd order), exponential filters non-linear diffusion (adaptive filters), hourglass filter total-variation filtering and denoising (standard, higer-order, and adaptive methods)

tensor image processing: structure tensor, boundary tensor, gradient energy tensor, linear and non-linear tensor smoothing, eigenvalue calculation etc. (2D and 3D) distance transform (Manhattan, Euclidean, Checker Board norms, 2D and 3D) morphological filters and median (2D and 3D) Loy/Zelinsky symmetry transform Gabor filters

Segmentation: edge detectors: Canny, zero crossings, Shen-Castan, boundary tensor corner detectors: corner response function, Beaudet, Rohr and Förstner corner detectors tensor based corner and junction operators

region growing: seeded region growing, watershed algorithm

Image Analysis: connected components labeling (2D and 3D) detection of local minima/maxima (including plateaus, 2D and 3D) tensor-basesd image analysis (2D and 3D) powerful incremental computation of region and object statistics

3-dimensional Image Processing and Analysis: point-wise transformations, projections and expansions in arbitrary high dimensions all functors (e.g. regions statistics) readily apply to higher dimensional data as well separable convolution and FFT-based convolution filters, resizing, morphology, and Euclidean distance transform for arbitrary dimensional arrays (not just 3D) connected components labeling, seeded region growing, watershed algorithm for volume data

Machine Learning: random forest classifier with various tree building strategies variable importance, feature selection (based on random forest) unsupervised decomposition: PCA (principle component analysis) and pLSA (probabilistic latent semantic analysis)

Mathematical Tools: special functions (error function, splines of arbitrary order, integer square root, chi square distribution, elliptic integrals) random number generation rational and fixed point numbers quaternions polynomials and polynomial root finding matrix classes, linear algebra, solution of linear systems, eigen system computation, singular value decomposition

optimization: linear least squares, ridge regression, L1-constrained least squares (LASSO, non-negative LASSO, least angle regression), quadratic programming

Inter-language support: Python bindings in both directions (use Python arrays in C++, call VIGRA functions from Python) Matlab bindings of some functions

Description

This module performs a series of morphological operations on a binary image or grayscale image, resulting in an image of the same type. 

need a thumbnail
Description

Plugins for 3D Image processing and Analyisis in ImageJ. Previously (?) known as 3D ImageJ Suite.

need a thumbnail
Description

For post-processing analysis, use Analyze Skeleton plugin written by the same author.

need a thumbnail
Description

Perform morphological operations (like erode and dilate or open and close) on images.

need a thumbnail
Description

Icy Morphomath operators: erosion, dilation, opening, closing, top-hat, gradient, distance map, skeleton and watershed.

need a thumbnail
Description

Fill holes in objects 

Included into EBImage Image processing and analysis toolbox for R