de.unihalle.informatik.MiToBo.apps.nuclei2D
Class NucleusDetector2D

java.lang.Object
  extended by de.unihalle.informatik.Alida.operator.ALDOperator
      extended by de.unihalle.informatik.MiToBo.core.operator.MTBOperator
          extended by de.unihalle.informatik.MiToBo.apps.nuclei2D.NucleusDetector2D
All Implemented Interfaces:
de.unihalle.informatik.Alida.datatypes.ALDConfigurationValidator, de.unihalle.informatik.Alida.operator.events.ALDOperatorExecutionProgressEventListener, EventListener

@ALDAOperator(genericExecutionMode=ALL)
public class NucleusDetector2D
extends MTBOperator

Operator for segmenting cell nuclei in 2D images.

Author:
moeller

Nested Class Summary
static class NucleusDetector2D.NuclDetectMode
          Available modes for nuclei segmentation in 2D images.
 
Nested classes/interfaces inherited from class de.unihalle.informatik.Alida.operator.ALDOperator
de.unihalle.informatik.Alida.operator.ALDOperator.HidingMode
 
Field Summary
 
Fields inherited from class de.unihalle.informatik.Alida.operator.ALDOperator
completeDAG, name, operatorExecutionEventlistenerList, portHashAccess, verbose, versionProvider
 
Constructor Summary
NucleusDetector2D()
          Default constructor.
NucleusDetector2D(MTBImage img, NucleusDetector2D.NuclDetectMode opmode, ImgThreshNiblack niblackOp, boolean doMorph, int msize, int minSize, boolean fillHoles)
          Constructor.
 
Method Summary
protected  MTBImageByte detectWithLocalContrastEnhancement()
          Detect nuclei by first improving image contrast.
protected  MTBImageByte detectWithNiblack()
          Detects nuclei based on Niblack thresholding.
protected  MTBImageByte detectWithOtsu_erodedilate()
          Detects nuclei based on Otsu thresholding and a combination of erosion/ dilation.
protected  MTBImageByte detectWithOtsu_openclose()
          Detects nuclei based on Otsu thresholding and a combination of opening and closing.
 SegResult_Nuclei getResultData()
          Get the result data, i.e. mask and related quantitative data.
 MTBImage getResultImage()
          Get the result label image.
protected  void operate()
           
 void setInputImage(MTBImage img)
          Specify input image.
 void setMeasureUnits(SegResultEnums.MeasureUnit mu)
          Specify units in which to measure areas.
 
Methods inherited from class de.unihalle.informatik.MiToBo.core.operator.MTBOperator
readResolve
 
Methods inherited from class de.unihalle.informatik.Alida.operator.ALDOperator
addOperatorExecutionProgressEventListener, fieldContained, fireOperatorExecutionProgressEvent, getALDPortHashAccessKey, getConstructionMode, getHidingMode, getInInoutNames, getInInoutNames, getInNames, getInOutNames, getMissingRequiredInputs, getName, getNumParameters, getOutInoutNames, getOutNames, getParameter, getParameterDescriptor, getParameterNames, getSupplementalNames, getVerbose, getVersion, handleOperatorExecutionProgressEvent, isConfigured, print, print, print, printInterface, printInterface, readHistory, reinitializeParameterDescriptors, removeOperatorExecutionProgressEventListener, runOp, runOp, runOp, setConstructionMode, setHidingMode, setName, setParameter, setVerbose, toStringVerbose, unconfiguredItems, validate, validateCustom, validateGeneric, writeHistory, writeHistory, writeHistory
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NucleusDetector2D

public NucleusDetector2D()
                  throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
Default constructor.

Throws:
de.unihalle.informatik.Alida.exceptions.ALDOperatorException

NucleusDetector2D

public NucleusDetector2D(MTBImage img,
                         NucleusDetector2D.NuclDetectMode opmode,
                         ImgThreshNiblack niblackOp,
                         boolean doMorph,
                         int msize,
                         int minSize,
                         boolean fillHoles)
                  throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
Constructor.

Parameters:
img - Image to be processed.
opmode - Detection mode.
niblackOp - Optional Niblack operator for mode 'NIBLACK'.
doMorph - Flag to enable/disable morphological processing.
msize - Size of structuring element in pre-/postprocessing.
minSize - Minimum size of valid nuclei.
fillHoles - Flag to enable/disable hole filling.
Throws:
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
Method Detail

setInputImage

public void setInputImage(MTBImage img)
Specify input image.


setMeasureUnits

public void setMeasureUnits(SegResultEnums.MeasureUnit mu)
Specify units in which to measure areas.


getResultImage

public MTBImage getResultImage()
Get the result label image.

Returns:
Reference to result label image, might be null.

getResultData

public SegResult_Nuclei getResultData()
Get the result data, i.e. mask and related quantitative data.

Returns:
Result data object.

operate

protected void operate()
                throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException,
                       de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException
Specified by:
operate in class de.unihalle.informatik.Alida.operator.ALDOperator
Throws:
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException

detectWithOtsu_openclose

protected MTBImageByte detectWithOtsu_openclose()
                                         throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException,
                                                de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException
Detects nuclei based on Otsu thresholding and a combination of opening and closing.

Returns:
Label image with detected nuclei.
Throws:
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException

detectWithOtsu_erodedilate

protected MTBImageByte detectWithOtsu_erodedilate()
                                           throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException,
                                                  de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException
Detects nuclei based on Otsu thresholding and a combination of erosion/ dilation.

This routine has been developed by Jochen Luechtrath for nuclei/cytoplasm segmentation.

Returns:
Label image with detected nuclei.
Throws:
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException

detectWithNiblack

protected MTBImageByte detectWithNiblack()
                                  throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException,
                                         de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException
Detects nuclei based on Niblack thresholding.

Returns:
Label image with detected nuclei.
Throws:
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException

detectWithLocalContrastEnhancement

protected MTBImageByte detectWithLocalContrastEnhancement()
                                                   throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException,
                                                          de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException
Detect nuclei by first improving image contrast.

Returns:
Label image with detected nuclei.
Throws:
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
de.unihalle.informatik.Alida.exceptions.ALDProcessingDAGException


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