de.unihalle.informatik.MiToBo.apps.neurites2D
Class NeuriteDetector2DAlgos

java.lang.Object
  extended by de.unihalle.informatik.MiToBo.apps.neurites2D.NeuriteDetector2DAlgos

public class NeuriteDetector2DAlgos
extends Object

 
 The class implements the basic algorithm for neurite detection based on a
 2D multichannel fluorescence image.
 
 The basic steps are:
  1. pre-segmentation step to get a coarse contour of the neurons, yielding a
     initialization for the active contour models (snake)
  2. refinement of the initial contours by the active contour models
  3. identification of structural neuron parts, like soma, neurites and
     growth cones via a wavelet based detection
  
 A lot of intermediate results are save to the special result directories.
 After detection of the neurites a result table with all measured morphology
 values is shown. An result image showing the detected neurites with their
 neurite traces and special points is saved to the output directory.
 
 

Author:
Danny Misiak
See Also:
NeuriteExtractor2D

Nested Class Summary
static class NeuriteDetector2DAlgos.DetectorExternalEnergy
          Label for different external energies of the snake which can be used by the detector.
 
Constructor Summary
NeuriteDetector2DAlgos()
          Standard constructor.
NeuriteDetector2DAlgos(MTBImage _inputImage, int _nucleiChannel, int _nucleusSize, double _nucleusRation, int[] _neuronChannels, double _niblackConstant, int _maxFragmentDistance, String _pathToFile, String _resultDir, NeuriteDetector2DAlgos.DetectorExternalEnergy _energyLabel, double _alpha, double _beta, double _stepSize, double _motionFraction, int _maxIterations, int _resampleConstant, int _maxSpineLength, int _neuriteMaskSize, Color _neuriteColor, MTBTableModel _table, Boolean _verbose, org.rosuda.JRI.Rengine _re)
          Constructor.
 
Method Summary
 double getAlpha()
          Get weighting factor for snake length term.
 double getBeta()
          Get weighting factor for snake curvature term.
 MTBNeurite2DSet getDetectedNeuritesSet()
          Get set of detected neurites.
 NeuriteDetector2DAlgos.DetectorExternalEnergy getEnergyLabel()
          Get energy label for external energy, used for optimization.
 MTBImage getInputImage()
          Get multichannel fluorescence input image.
 int getMaxFragmentDistance()
          Get maximum fragment distance , in pixel.
 int getMaxIterations()
          Get maximum number of iterations to finish snake optimization,
 int getMaxSpineLength()
          Get maximum length of a spine, in pixel.
 double getMotionFraction()
          Get minimum motion fraction of snake control points, to finish snake optimization.
 Color getNeuriteColor()
          Get neurite region color (RGB) for result image.
 int getNeuriteMaskSize()
          Get maximum neurite mask size, in pixel.
 int[] getNeuronChannles()
          Get neuron channels, used for detection.
 double getNiblackConstant()
          Get Niblack thresholding constant.
 int getNucleiChannel()
          Get channel number, including the labeled nuclei.
 double getNucleusRatio()
          Get ratio of nucleus pixels which should be included in an intact neuron region
 int getNucleusSize()
          Get minimum nucleus size of nuclei regions
 int getResampleConstant()
          Get constant for snake point resampling.
 String getResultDir()
          Get directory of intermediate and final results.
 MTBTableModel getResultTable()
          Get final result table of morphology measurements.
 int[] getSnakeIterCount()
          Get number snake iteration counts, used for optimization.
 double getStepSize()
          Get step size of snake point movement.
 void neuriteDetection(MTBContour2DSet initContourSet)
          Main method for 2D neurite detection.
 MTBContour2DSet preSegmentation()
          Method for pre-segmentation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NeuriteDetector2DAlgos

public NeuriteDetector2DAlgos()
Standard constructor.


NeuriteDetector2DAlgos

public NeuriteDetector2DAlgos(MTBImage _inputImage,
                              int _nucleiChannel,
                              int _nucleusSize,
                              double _nucleusRation,
                              int[] _neuronChannels,
                              double _niblackConstant,
                              int _maxFragmentDistance,
                              String _pathToFile,
                              String _resultDir,
                              NeuriteDetector2DAlgos.DetectorExternalEnergy _energyLabel,
                              double _alpha,
                              double _beta,
                              double _stepSize,
                              double _motionFraction,
                              int _maxIterations,
                              int _resampleConstant,
                              int _maxSpineLength,
                              int _neuriteMaskSize,
                              Color _neuriteColor,
                              MTBTableModel _table,
                              Boolean _verbose,
                              org.rosuda.JRI.Rengine _re)
Constructor.

Parameters:
_inputImage - multichannel fluorescence image
_nucleiChannel - channel number including nuclei image
_nucleusSize - minimum size of nucleus region
_nucleusRation - ratio of nucleus pixels which should be included in an intact neuron region
_neuronChannels - channel numbers including neuron stains for detection
_niblackConstant - constant for niblack thresholding
_maxFragmentDistance - maximum distance to connect a fragment to the neuron, in pixel
_pathToFile - path to current image file
resultDir - directory of output results
_energyLabel - label of available external energies for detection using snakes
_alpha - weighting factor for snake length term
_beta - weighting factor for snake curvature term
_stepSize - step size gamma to move snake in a optimization step
_motionFraction - minimum fraction of not moving points to stop optimization
_maxIterations - maximum iteration to stop optimization
_resampleConstant - constant for resampling snake control points
_maxSpineLength - maximum length of a branch to define it as spine, in pixel
_neuriteMaskSize - mask size of average neurite width, in pixel
_neuriteColor - color for neurite regions in result image
_table - result table
_verbose - flag for standard console outputs
_re - R engine to call R scripts from a Java thread
Method Detail

getAlpha

public double getAlpha()
Get weighting factor for snake length term.


getBeta

public double getBeta()
Get weighting factor for snake curvature term.


getSnakeIterCount

public int[] getSnakeIterCount()
Get number snake iteration counts, used for optimization.


getInputImage

public MTBImage getInputImage()
Get multichannel fluorescence input image.


getNucleiChannel

public int getNucleiChannel()
Get channel number, including the labeled nuclei.


getNucleusSize

public int getNucleusSize()
Get minimum nucleus size of nuclei regions


getNucleusRatio

public double getNucleusRatio()
Get ratio of nucleus pixels which should be included in an intact neuron region


getNeuronChannles

public int[] getNeuronChannles()
Get neuron channels, used for detection.


getNiblackConstant

public double getNiblackConstant()
Get Niblack thresholding constant.


getMaxFragmentDistance

public int getMaxFragmentDistance()
Get maximum fragment distance , in pixel.


getEnergyLabel

public NeuriteDetector2DAlgos.DetectorExternalEnergy getEnergyLabel()
Get energy label for external energy, used for optimization.


getStepSize

public double getStepSize()
Get step size of snake point movement.


getMotionFraction

public double getMotionFraction()
Get minimum motion fraction of snake control points, to finish snake optimization.


getMaxIterations

public int getMaxIterations()
Get maximum number of iterations to finish snake optimization,


getResampleConstant

public int getResampleConstant()
Get constant for snake point resampling.


getMaxSpineLength

public int getMaxSpineLength()
Get maximum length of a spine, in pixel.


getNeuriteMaskSize

public int getNeuriteMaskSize()
Get maximum neurite mask size, in pixel. Defines the average width of a neurite.


getNeuriteColor

public Color getNeuriteColor()
Get neurite region color (RGB) for result image.


getResultDir

public String getResultDir()
Get directory of intermediate and final results.


getResultTable

public MTBTableModel getResultTable()
Get final result table of morphology measurements.


getDetectedNeuritesSet

public MTBNeurite2DSet getDetectedNeuritesSet()
Get set of detected neurites.


neuriteDetection

public void neuriteDetection(MTBContour2DSet initContourSet)
                      throws NeuriteDetector2DException
Main method for 2D neurite detection. Using the initial contours of the pre-segmented neurons as input for the active contour models to calculate an exact contour of each neuron.

Parameters:
initContourSet - set of initial contours for snakes
Throws:
NeuriteDetector2DException

preSegmentation

public MTBContour2DSet preSegmentation()
                                throws NeuriteDetector2DException
Method for pre-segmentation. Binarization, regions- and contour labeling take place. As result the rough contours of the neurons are returned to be used as initial contours for active contour models in the `neuriteDetection` method.

Returns:
Set of 2D neuron contours.
Throws:
NeuriteDetector2DException


Copyright © 2010–2015 Martin Luther University Halle-Wittenberg. All rights reserved.