Analyzeparticles

From Eigenvector Research Documentation Wiki
Revision as of 11:24, 10 February 2011 by imported>Donal (→‎Define Measured Measured Properties)
Jump to navigation Jump to search

Purpose

ANALYZEPARTCLES Identify particles (blobs, connected regions), and their properties, in an image dataset.

Synopsis

[x model] = analyzeparticles(x, options);
[x model] = analyzeparticles(x);
[x model] = analyzeparticles(x, model);

Description

The particle analysis functionality is used to automatically identify particle-like areas in an image and to return information about the identified particles’ characteristics such as their area, shape and pixel values. A particle is considered to be an isolated contiguous region of pixels within the image which have similar intensity values or color values. Particles are also known as “connected regions” or “blobs”.

Our image analysis software can analyze Particles in images using either the “analyzeparticles” Matlab function or the “Particle Analysis” GUI, which is a graphical interface to that function. The analyzeparticles function itself is implemented using the ImageJ image analysis package (http://rsb.info.nih.gov/ij/) which is included with our software. Analyzeparticles integrates the ImageJ “Analyze Particles” feature into our software so it can be conveniently used with the Eigenvector dataset object and the other MIA/PLS_Toolbox tools.

Inputs

  • x = image dataset object with one or more slabs,
  • model = previously generated model of type 'ANALYZEPARTICLES' (when applying model to new data).

Outputs

  • model = a standard model structure model with the following fields (see MODELSTRUCT):
    • modeltype: 'ANALYZEPARTICLES',
    • datasource: structure array with information about input data,
    • date: date of creation,
    • time: time of creation,
    • info: additional model information,
    • particletable: A dataset containing the requested particle properties,
      • Rows are particles,
      • Columns represent properties, identified by particletable.label{2}.
    • allparticles: a vector with one entry per pixel, value = 0 if pixel is not a particle pixel, 1 otherwise.
    • particles: a vector with one entry per pixel, value = j, where j = 0, 1, ...n if pixel is part of particle number j.
    • foreground: a vector with one entry per pixel, value = 0 or 255, showing the binary image representing all possible particle pixels.
    • detail: sub-structure with additional model details and results, including:
      • model.detail.thresholdValue: the threshold value used in forming the binary image,
      • model.detail.height: height of the image (in pixels),
      • model.detail.width: width of the image (in pixels),
      • model.detail.nparticles: number of identified particles,
      • model.detail.ij: contains the Java evri.ij.plugin.ParticlesAnalyzer object.

Options

options = a structure array with the following fields:

  • display: [ 'off' | {'on'} ], governs level of display to command window,
  • plots [ 'none' | {'final'} ], governs level of plotting,
  • includeholes: [ 'off' | {'on'} ], holes within particles are included?,
  • includeedgeparticles: [ {'off'} | 'on' ], include particles intersecting the image's edge?,
  • thresholdslab: Index of dataset slab to use for creating binary image. Default = [],
  • thresholdvalue: Value to use as threshold when creating binary image,
  • reversemask: [ {'off'} | 'on'] reverse the particle binary mask?
  • apply_abs: [ {'off'} | 'on' ] apply absolute value to data initially?

The following four options represent criteria which potential particles must satisfy to be considered particles:

  • minsize: Lower limit to particle area. Default is 50 pixels,
  • maxsize: Upper limit to particle area. Default is infinite,
  • mincircularity: Lower limit to particle circularity. Default = 0.0,
  • maxcircularity: Upper limit to particle circularity. Default = 1.0,

The remaining options indicate whether these additional particle properties should be measured and reported:

  • particleminmax: [ {'off'} | 'on' ] measure particle min and max values,
  • particlemedian: [ {'off'} | 'on' ] measure particle median value,
  • particlestddev: [ {'off'} | 'on' ] measure particle standard deviation value,
  • particleperimeter: [ {'off'} | 'on' ] measure length of particle perimeter (pixels),
  • particleferet: [ {'off'} | 'on' ] measure Feret diameters of particle (pixels).

Algorithm

There are two stages to particle analysis of an image dataset object (DSO). The first stage is to obtain a binary image where image pixel values are either 0 or 1 where one value represents non-particle pixels and the other represents potential particle pixels. This is usually accomplished by specifying a threshold level where pixel having values below or above the threshold value are assigned value 0 or 1. If the image DSO has multiple slabs then one slab must be selected to determine the binary image or else the average of all the slabs can be used. A pixel assigned value 1 is not automatically part of a particle because other particle criteria can be specified such as a minimum particle area requirement, or other shape restriction. Once these filters are applied there may remain some particle regions.

The second stage in particle analysis is to calculate the properties of each particle region. Properties include area, perimeter, centroid coordinates, shape properties (circularity, aspect ratio, roundness, and solidity) and Feret’s diameters (Feret diameter, FeretX, FeretY, FeretAngle and MinFeret). There are other particle properties which depend on the particle’s pixel values including mean, median, minimum, maximum, and standard deviation. These are calculated for each slab for each particle.


Define Measured Measured Properties

Properties of each particle are returned in the particletable DSO. Particles' centroid coordinates (w, h) are always returned. Coordinates are given in imaging convention of (x,y) being measured in pixels from the top left corner of the image, so the top left corner has coordinates (0,0) while the bottom right corner has coordinates (nwidth-1, nheight-1) Options can be specified to measure additional particle properties, including area

particlemean: [ 'off' | {'on'} ] measure particle area

particleshape: [ 'off' | {'on'} ] measure particle shape properties

particleminmax: [ {'off'} | 'on' ] measure particle min and max value

particlemedian: [ {'off'} | 'on' ] measure particle median value

particlestddev: [ {'off'} | 'on' ] measure particle standard deviation value

particleperimeter: [ {'off'} | 'on' ] measure length of particle perimeter (pixels)

particleferet: [ {'off'} | 'on' ] measure Feret diameters of particle (pixels)

Describe Filtering of Particles by Size and Circularity

Describe

Reverse Mask to measure bright particles

There are

Handling of excluded pixels

There are

Handling of interior holes

There are

See Also

analysis, svmda