Learn R Programming

EBImage (version 4.14.2)

computeFeatures: Compute object features

Description

Computes morphological and texture features from image objects.

Usage

computeFeatures(x, ref, methods.noref=c("computeFeatures.moment", "computeFeatures.shape"), methods.ref=c("computeFeatures.basic", "computeFeatures.moment", "computeFeatures.haralick"), xname="x", refnames, properties=FALSE, expandRef=standardExpandRef, ...) computeFeatures.basic(x, ref, properties=FALSE, basic.quantiles=c(0.01, 0.05, 0.5, 0.95, 0.99), xs, ...) computeFeatures.shape(x, properties=FALSE, xs, ...) computeFeatures.moment(x, ref, properties=FALSE, xs, ...) computeFeatures.haralick(x, ref , properties=FALSE, haralick.nbins=32, haralick.scales=c(1, 2), xs, ...)
standardExpandRef(ref, refnames, filter = gblob())

Arguments

x
An Image object or an array containing labelled objects. Labelled objects are pixel sets with the same unique integer value.
ref
A matrix or a list of matrices, containing the intensity values of the reference objects.
methods.noref
A character vector containing the function names to be called to compute features without reference intensities. Default is computeFeatures.moment and computeFeatures.shape.
methods.ref
A character vector containing the function names to be called to compute features with reference intensities. Default is computeFeatures.basic, computeFeatures.moment and computeFeatures.haralick.
xname
A character string naming the object layer. Default is x.
refnames
A character vector naming the reference intensity layers. Default are the names of ref, if present. If not, reference intensity layers are named using lower-case letters.
properties
A logical. If FALSE, the default, the function returns the feature matrix. If TRUE, the function returns feature properties.
expandRef
A function used to expand the reference images. Default is standardExpandRef. See Details.
basic.quantiles
A numerical vector indicating the quantiles to compute.
haralick.nbins
An integer indicating the number of bins using to compute the Haralick matrix. See Details.
haralick.scales
A integer vector indicating the number of scales to use to compute the Haralick features.
xs
An optional temporary object created by computeFeatures used for performance considerations.
filter
The filter applied to reference images using filter2 in order to add granulometry.
...
Optional arguments passed to the feature computation functions.

Value

If properties if FALSE (by default), computeFeatures returns a matrix of n cells times p features, where p depends of the options given to the function. Returns NULL if no object is present.If properties if TRUE, computeFeatures returns a matrix of p features times 2 properties (translation and rotation invariance). Feature properties are useful to filter out features that may not be needed for specific tasks, e.g. cell position when doing cell classification.

Details

Features are named x.y.f, where x is the object layer, y the reference image layer and f the feature name. Examples include cell.dna.mean, indicating mean DNA intensity computed in the cell or nucleus.tubulin.cx, indicating the x center of mass of tubulin computed in the nucleus region.

The function computeFeatures computes sets of features. Features are organized in 4 sets, each computed by a different function. The function computeFeatures.basic computes spatial-independent statistics on pixel intensities:

  • b.mean: mean intensity
  • b.sd: standard deviation intensity
  • b.mad: mad intensity
  • b.q*: quantile intensity

The function computeFeatures.shape computes features that quantify object shape:

  • s.area: area size (in pixels)
  • s.perimeter: perimeter (in pixels)
  • s.radius.mean: mean radius (in pixels)
  • s.radius.sd: standard deviation of the mean radius (in pixels)
  • s.radius.max: max radius (in pixels)
  • s.radius.min: min radius (in pixels)

The function computeFeatures.moment computes features related to object image moments, which can be computed with or without reference intensities:

  • m.cx: center of mass x (in pixels)
  • m.cy: center of mass y (in pixels)
  • m.majoraxis: elliptical fit major axis (in pixels)
  • m.eccentricity: elliptical eccentricity defined by sqrt(1-minoraxis^2/majoraxis^2). Circle eccentricity is 0 and straight line eccentricity is 1.
  • m.theta: object angle (in radians)

The function computeFeatures.haralick computes features that quantify pixel texture. Features are named according to Haralick's original paper.

References

R. M. Haralick, K Shanmugam and Its'Hak Deinstein (1979). Textural Features for Image Classification. IEEE Transactions on Systems, Man and Cybernetics.

See Also

bwlabel, propagate

Examples

Run this code
  ## load and segment nucleus
  y = readImage(system.file("images", "nuclei.tif", package="EBImage"))[,,1]
  x = thresh(y, 10, 10, 0.05)
  x = opening(x, makeBrush(5, shape='disc'))
  x = bwlabel(x)
  display(y, title="Cell nuclei")
  display(x, title="Segmented nuclei")

  ## compute shape features
  fts = computeFeatures.shape(x)
  fts

  ## compute features
  ft = computeFeatures(x, y, xname="nucleus")
  cat("median features are:\n")
  apply(ft, 2, median)

  ## compute feature properties
  ftp = computeFeatures(x, y, properties=TRUE, xname="nucleus")
  ftp

Run the code above in your browser using DataLab