Advanced

Advanced modules include computer vision algorithms.

Closing

Closing is the erosion of the dilation of an image. It’s used to remove pepper noise (small dark spots) and connect small bright cracks. See this tutorial for more information.


Supports 2D?

Supports 3D?

Respects masks?

YES

YES

NO

(Jump to top)

DilateImage

DilateImage expands bright shapes in an image. See this tutorial for more information.


Supports 2D?

Supports 3D?

Respects masks?

YES

YES

NO

(Jump to top)

DilateObjects

DilateObjects expands objects based on the structuring element provided. This function is similar to the “Expand” function of ExpandOrShrinkObjects, with two major distinctions-

  1. DilateObjects supports 3D objects, unlike ExpandOrShrinkObjects.

  2. In ExpandOrShrinkObjects, two objects closer than the expansion distance will expand until they meet and then stop there. In this module, the object with the larger object number (the object that is lower in the image) will be expanded on top of the object with the smaller object number.


Supports 2D?

Supports 3D?

Respects masks?

YES

YES

NO

(Jump to top)

ErodeImage

ErodeImage shrinks bright shapes in an image. See this tutorial for more information.


Supports 2D?

Supports 3D?

Respects masks?

YES

YES

NO

(Jump to top)

ErodeObjects

ErodeObjects shrinks objects based on the structuring element provided. This function is similar to the “Shrink” function of ExpandOrShrinkObjects, with two major distinctions-

  1. ErodeObjects supports 3D objects, unlike ExpandOrShrinkObjects.

  2. In ExpandOrShrinkObjects, a small object will only ever be shrunk down to a single pixel. In this module, an object smaller than the structuring element will be removed entirely unless ‘Prevent object removal’ is enabled.


Supports 2D?

Supports 3D?

Respects masks?

YES

YES

NO

(Jump to top)

FillObjects

FillObjects fills holes within all objects in an image.

FillObjects can be run after any labeling or segmentation module (e.g., ConvertImageToObjects or Watershed). Labels are preserved and, where possible, holes entirely within the boundary of labeled objects are filled with the surrounding object number.

FillObjects can also be optionally run on a “per-plane” basis working with volumetric data. Holes will be filled for each XY plane, rather than on the whole volume.


Supports 2D?

Supports 3D?

Respects masks?

YES

YES

NO

(Jump to top)

GaussianFilter

GuassianFilter will blur an image and remove noise. Filtering an image with a Gaussian filter can be helpful if the foreground signal is noisy or near the noise floor.


Supports 2D?

Supports 3D?

Respects masks?

YES

YES

NO

(Jump to top)

MatchTemplate

The MatchTemplate module uses normalized cross-correlation to match a template to a single-channel two-or-three dimensional image or multi-channel two-dimensional image. The output of the module is an image where each pixel corresponds to the Pearson product-moment correlation coefficient between the image and the template. Practically, this allows you to crop a single object of interest (i.e., a cell) and predict where other such objects are in the image. Note that this is not rotation invariant, so this module will perform best when objects are approximately round or are angled in a relatively unified direction.


Supports 2D?

Supports 3D?

Respects masks?

YES

NO

NO

(Jump to top)

MedialAxis

MedialAxis computes the medial axis or topological skeleton of a binary image. Rather than by sequentially removing pixels as in MorphologicalSkeleton, the medial axis is computed based on the distance transform of the thresholded image (i.e., the distance each foreground pixel is from a background pixel). See this tutorial for more information.


Supports 2D?

Supports 3D?

Respects masks?

YES

YES

NO

(Jump to top)

MedianFilter

MedianFilter reduces salt-and-pepper noise in an image while preserving borders.


Supports 2D?

Supports 3D?

Respects masks?

YES

YES

NO

(Jump to top)

MorphologicalSkeleton

MorphologicalSkeleton thins an image into a single-pixel wide skeleton. See this tutorial for more information.


Supports 2D?

Supports 3D?

Respects masks?

YES

YES

NO

(Jump to top)

Opening

Opening is the dilation of the erosion of an image. It’s used to remove salt noise (small bright spots) and connect small dark cracks. See this tutorial for more information.


Supports 2D?

Supports 3D?

Respects masks?

YES

YES

NO

(Jump to top)

ReduceNoise

ReduceNoise performs non-local means noise reduction. Instead of only using a neighborhood of pixels around a central pixel for denoising, such as in GaussianFilter, multiple neighborhoods are pooled together. The neighborhood pool is determined by scanning the image for regions similar to the area around the central pixel using a correlation metric and a cutoff value. See this tutorial for more information.


Supports 2D?

Supports 3D?

Respects masks?

YES

YES

NO

(Jump to top)

RemoveHoles

RemoveHoles fills holes smaller than the specified diameter.

This module works best on binary and integer-labeled images (i.e., the output of ConvertObjectsToImage when the color format is uint16). Grayscale and multichannel image data is converted to binary by setting values below 50% of the data range to 0 and the other 50% of values to 1.

The output of this module is a binary image, regardless of the input data type. It is recommended that RemoveHoles is run before any labeling or segmentation module (e.g., ConvertImageToObjects or Watershed).


Supports 2D?

Supports 3D?

Respects masks?

YES

YES

NO

(Jump to top)

ShrinkToObjectCenters

ShrinkToObjectCenters will transform a set of objects into a label image with single points representing each object. The location of each point corresponds to the centroid of the input objects.

Note that if the object is not sufficiently round, the resulting single pixel will reside outside the original object. For example, a ‘U’ shaped object, perhaps a C. Elegans, could potentially lead to this special case. This could be a concern if these points are later used as seeds or markers for a Watershed operation further in the pipeline.


Supports 2D?

Supports 3D?

Respects masks?

YES

YES

NO

(Jump to top)

Watershed

Watershed is a segmentation algorithm. It is used to separate different objects in an image. For more information please visit the scikit-image documentation on the Watershed implementation that CellProfiler uses.


Supports 2D?

Supports 3D?

Respects masks?

YES

YES

YES

This module has two operating modes:

  • Distance (default): This is classical nuclei segmentation using watershed. Your “Input” image should be a binary image. Markers and other inputs for the watershed algorithm will be automatically generated.

    • Footprint defines dimentions of the window used to scan the input image for local maximum. The footprint can be interpreted as a region, window, structring element or volume that subsamples the input image. The distance transform will create local maximum from a binary image that will be at the centers of objects. A large footprint will suppress local maximum that are close together into a single maximum, but this will require more memory and time to run. Large footprint could result in a blockier segmentation. A small footprint will preserve local maximum that are close together, but this can lead to oversegmentation. If speed and memory are issues, choosing a lower footprint can be offset by downsampling the input image. See mahotas regmax for more information.

    • Downsample an n-dimensional image by local averaging. If the downsampling factor is 1, the image is not downsampled. To downsample more, increase the number from 1.

  • Markers: Similar to the IdentifySecondaryObjects in 2D, use manually generated markers and supply an optional mask for watershed. Watershed works best when the “Input” image has high intensity surrounding regions of interest and low intensity inside regions of interest.

    • Connectivity is the maximum number of orthogonal hops to consider a pixel/voxel as a neighbor. Accepted values are ranging from 1 to the number of dimensions. Two pixels are connected when they are neighbors and have the same value. In 2D, they can be neighbors either in a 1- or 2-connected sense. The value refers to the maximum number of orthogonal hops to consider a pixel/voxel a neighbor. See skimage label for more information.

      Note: when using marker-based Watershed that it is typical to use the input binary image as the mask. Otherwise, if the mask is None, the background will be interpreted as an object and Watershed may yield unexpected results.

    • Compactness, use compact watershed with given compactness parameter. Higher values result in more regularly-shaped watershed basins.

Selecting Advanced Settings will split the detected objects into smaller objects based on a seeded watershed method that will:

  • Compute the local maxima (either through the Euclidean distance transformation of the segmented objects or through the intensity values of a reference image

  • Dilate the seeds as specified

  • Use these seeds as markers for watershed

  • NOTE: This implementation is based off of the IdentifyPrimaryObjects declumping implementation. For more information, see the aforementioned module.

  • The Advanced Settings declumping code was originally written by Madison Bowden as the DeclumpObjects plugin.

(Jump to top)