de.unihalle.informatik.MiToBo.segmentation.snakes.optimize
Class SnakeOptimizerSingle

java.lang.Object
  extended by de.unihalle.informatik.Alida.operator.ALDOperator
      extended by de.unihalle.informatik.Alida.operator.ALDOperatorControllable
          extended by de.unihalle.informatik.MiToBo.core.operator.MTBOperatorControllable
              extended by de.unihalle.informatik.MiToBo.segmentation.snakes.optimize.SnakeOptimizer
                  extended by de.unihalle.informatik.MiToBo.segmentation.snakes.optimize.SnakeOptimizerSingle
All Implemented Interfaces:
de.unihalle.informatik.Alida.datatypes.ALDConfigurationValidator, de.unihalle.informatik.Alida.operator.events.ALDConfigurationEventListener, de.unihalle.informatik.Alida.operator.events.ALDConfigurationEventReporter, de.unihalle.informatik.Alida.operator.events.ALDControlEventListener, de.unihalle.informatik.Alida.operator.events.ALDControlEventReporter, de.unihalle.informatik.Alida.operator.events.ALDOperatorExecutionProgressEventListener, EventListener
Direct Known Subclasses:
SnakeOptimizerSingleGreedy, SnakeOptimizerSingleVarCalc

public abstract class SnakeOptimizerSingle
extends SnakeOptimizer

 Image contour segmentation using parametric snakes.
 

Author:
moeller, misiak

Nested Class Summary
static class SnakeOptimizerSingle.EnergyNormalizationMode
          Snake normalization mode.
static class SnakeOptimizerSingle.IntensityNormalizationMode
          Image intensity normalization mode.
 
Nested classes/interfaces inherited from class de.unihalle.informatik.MiToBo.segmentation.snakes.optimize.SnakeOptimizer
SnakeOptimizer.Snake_status
 
Nested classes/interfaces inherited from class de.unihalle.informatik.Alida.operator.ALDOperatorControllable
de.unihalle.informatik.Alida.operator.ALDOperatorControllable.OperatorControlStatus, de.unihalle.informatik.Alida.operator.ALDOperatorControllable.OperatorExecutionStatus
 
Nested classes/interfaces inherited from class de.unihalle.informatik.Alida.operator.ALDOperator
de.unihalle.informatik.Alida.operator.ALDOperator.HidingMode
 
Field Summary
protected  MTBImageRGB dispImg
          Image for showing/saving intermediate results.
protected  Boolean doResampling
          Flag to enable/disable snake resampling.
protected  double energy
          Current energy of the snake.
protected  boolean energyCalculationRequested
          Flag for invoking energy calculations.
protected  SnakeOptimizerSingle.IntensityNormalizationMode intNormMode
          Mode for normalizing image intensities.
protected  SnakeOptimizerSingle.EnergyNormalizationMode normMode
          Mode for normalizing energies.
protected  double previousEnergy
          Snake energy in previous iteration (for change assessment).
protected  MTBSnake previousSnake
          Old snake of previous iteration (for evolution assessment).
protected  Double resampleSegLength
          Target length of snake segments in resampling.
protected  double scaleFactor
          Scale factor for snake normalization.
protected  MTBSnake snake
          The snake on which the algorithm works.
protected  UserTime timer
          Timer object for time measurements.
protected  MTBImage workingImage
          Image on which to actually do the segmentation.
 
Fields inherited from class de.unihalle.informatik.MiToBo.segmentation.snakes.optimize.SnakeOptimizer
counterClockwiseSnakePointOrderRequested, energyData, excludeMask, iHeight, inImg, initialSnakes, intermediateResults, itCounter, iWidth, outIntermediateResultsStack, outIntermediateResultsStackInterval, outIntermediateResultsStackWanted, outSnakes, outSnakesImg, sampleEnergyData, saveIntermediateResults, saveIntermediateResultsPath, showIntermediateResults, snakeNum
 
Fields inherited from class de.unihalle.informatik.Alida.operator.ALDOperatorControllable
configurationEventlistenerList, controlEventlistenerList, notifyListenersRecursively, operatorExecStatus, operatorStatus, stepSize, stepWiseExecution
 
Fields inherited from class de.unihalle.informatik.Alida.operator.ALDOperator
completeDAG, name, operatorExecutionEventlistenerList, portHashAccess, verbose, versionProvider
 
Constructor Summary
SnakeOptimizerSingle()
          Default constructor.
 
Method Summary
protected  void closeWindows()
          Close all windows openened by this operator (for clean-up).
 void disableEnergyCalculation()
          Disable energy calculations completely.
 Boolean doResampleSnake()
          Returns true if snake should be resampled during optimization.
 void enableEnergyCalculation()
          Enable energy calculation in each iteration.
 MTBSnake getCurrentSnake()
          Returns a copy of the current snake.
 MTBPolygon2DSet getCurrentSnakes()
          Returns a set with current snake(!).
abstract  MTBSet_ActiveContourEnergy getEnergySet()
          Returns a reference to the set of energies.
 double getEnergyValue()
          Get current energy value for the snake.
 SnakeOptimizerSingle.IntensityNormalizationMode getIntensityNormalizationMode()
          Request mode for normalizing image intensities.
 SnakeOptimizerSingle.EnergyNormalizationMode getNormalizationMode()
          Returns energy normalization mode.
 double getPreviousEnergyValue()
          Get old energy value for the snake at last iteration.
 MTBSnake getPreviousSnake()
          Returns the previous snake.
 Double getSegmentLength()
          Returns desired segment length for resampling.
 MTBImage getWorkingImage()
          Returns working image.
protected abstract  boolean hasEnergies()
          Check if energies are given.
protected  void initOptimizer()
          Initializes the optimizer.
 MTBImage normalizeInputImage(MTBImage inimg)
          Normalizes image intensities according to normalization mode of operator.
 void printParams()
          Print current parameter settings to standard output device.
protected  Object readResolve()
          Function for proper initialization of deserialized objects.
protected  void resampleSnake()
          Resamples the snake using the specified segment length.
protected  void saveSnake()
          Save intermediate results.
protected  void showSnake()
          Display intermediate results by overlaying the input image with the current snake result.
 String toString()
           
 void validateCustom()
           
 
Methods inherited from class de.unihalle.informatik.MiToBo.segmentation.snakes.optimize.SnakeOptimizer
clone, disableSaveIntermediateResults, disableShowIntermediateResults, doIteration, enableSaveIntermediateResults, enableShowIntermediateResults, getExcludeMask, getInitialSnakes, getInputImage, getIterationCount, getResultSnakeImage, getResultSnakes, getSnakeNumber, getStackWithIntermediateResults, operate, setExcludeMask, setInitialSnakes, setInputImage, setIntermediateResultPath, supportsStepWiseExecution, wantStackWithIntermediateResults
 
Methods inherited from class de.unihalle.informatik.Alida.operator.ALDOperatorControllable
addALDConfigurationEventListener, addALDControlEventListener, fireALDConfigurationEvent, fireALDControlEvent, getExecutionStatus, handleALDConfigurationEvent, handleALDControlEvent, removeALDConfigurationEventListener, removeALDControlEventListener, setNotifyRecursiveFlag
 
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, validateGeneric, writeHistory, writeHistory, writeHistory
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

intNormMode

@Parameter(label="Image intensity normalization mode",
           direction=IN,
           required=false,
           dataIOOrder=9,
           description="Normalization mode for image intensities.")
protected SnakeOptimizerSingle.IntensityNormalizationMode intNormMode
Mode for normalizing image intensities.


normMode

@Parameter(label="Energy normalization mode",
           direction=IN,
           required=false,
           dataIOOrder=10,
           description="Normalization mode for snake/energies.")
protected SnakeOptimizerSingle.EnergyNormalizationMode normMode
Mode for normalizing energies.


resampleSegLength

@Parameter(label="Resample Segment Length",
           mode=ADVANCED,
           direction=IN,
           required=false,
           dataIOOrder=12,
           description="Desired resampling segment length.")
protected Double resampleSegLength
Target length of snake segments in resampling.


doResampling

@Parameter(label="Do Resampling",
           mode=ADVANCED,
           direction=IN,
           required=false,
           dataIOOrder=11,
           description="Flag for snake resampling.")
protected Boolean doResampling
Flag to enable/disable snake resampling.


snake

protected transient MTBSnake snake
The snake on which the algorithm works.


workingImage

protected transient MTBImage workingImage
Image on which to actually do the segmentation.

If image normalization is applied to the given input image, i.e. if the input image is normalized to intensities in range [0,1], this working image contains the normalized image.


previousSnake

protected transient MTBSnake previousSnake
Old snake of previous iteration (for evolution assessment).


energyCalculationRequested

protected transient boolean energyCalculationRequested
Flag for invoking energy calculations. TODO really needed?


energy

protected transient double energy
Current energy of the snake.


previousEnergy

protected transient double previousEnergy
Snake energy in previous iteration (for change assessment).


scaleFactor

protected transient double scaleFactor
Scale factor for snake normalization.


timer

protected transient UserTime timer
Timer object for time measurements.


dispImg

protected transient MTBImageRGB dispImg
Image for showing/saving intermediate results.

Constructor Detail

SnakeOptimizerSingle

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

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

readResolve

protected Object readResolve()
Function for proper initialization of deserialized objects.

This function is called on an instance of this class being deserialized from file, prior to handing the instance over to the user. It takes care of a proper initialization of transient member variables as they are not initialized to the default values during deserialization.

Overrides:
readResolve in class SnakeOptimizer
Returns:

validateCustom

public void validateCustom()
                    throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
Overrides:
validateCustom in class SnakeOptimizer
Throws:
de.unihalle.informatik.Alida.exceptions.ALDOperatorException

initOptimizer

protected void initOptimizer()
                      throws MTBSnakeException
Description copied from class: SnakeOptimizer
Initializes the optimizer.

Needs to be implemented by any derived class. This routine is automatically called on invoking the local operate routine.

Specified by:
initOptimizer in class SnakeOptimizer
Throws:
MTBSnakeException

showSnake

protected void showSnake()
Display intermediate results by overlaying the input image with the current snake result.

Specified by:
showSnake in class SnakeOptimizer

closeWindows

protected void closeWindows()
Description copied from class: SnakeOptimizer
Close all windows openened by this operator (for clean-up).

Specified by:
closeWindows in class SnakeOptimizer

saveSnake

protected void saveSnake()
Save intermediate results.

Specified by:
saveSnake in class SnakeOptimizer

hasEnergies

protected abstract boolean hasEnergies()
Check if energies are given.

Returns:
True, if energies are available.

printParams

public void printParams()
Description copied from class: SnakeOptimizer
Print current parameter settings to standard output device.

Specified by:
printParams in class SnakeOptimizer

toString

public String toString()
Overrides:
toString in class SnakeOptimizer

getEnergySet

public abstract MTBSet_ActiveContourEnergy getEnergySet()
Returns a reference to the set of energies.

Returns:
Set of energies.

getWorkingImage

public MTBImage getWorkingImage()
Description copied from class: SnakeOptimizer
Returns working image.

Usually this will be the input image, however, e.g. in case of image normalization being applied the normalized image will be returned.

Specified by:
getWorkingImage in class SnakeOptimizer
Returns:
Image on which the operator works.

getCurrentSnakes

public MTBPolygon2DSet getCurrentSnakes()
Returns a set with current snake(!).

In case of the SnakeOptimizerSingle class this set will always have exactly one element.

Specified by:
getCurrentSnakes in class SnakeOptimizer
Returns:
Current set of snake contours.

enableEnergyCalculation

public void enableEnergyCalculation()
Enable energy calculation in each iteration. TODO really needed?


disableEnergyCalculation

public void disableEnergyCalculation()
Disable energy calculations completely. TODO really needed?


getNormalizationMode

public SnakeOptimizerSingle.EnergyNormalizationMode getNormalizationMode()
Returns energy normalization mode.


getIntensityNormalizationMode

public SnakeOptimizerSingle.IntensityNormalizationMode getIntensityNormalizationMode()
Request mode for normalizing image intensities.

Returns:
Mode of image intensity normalization.

getCurrentSnake

public MTBSnake getCurrentSnake()
Returns a copy of the current snake.

Returns:
Current snake.

getPreviousSnake

public MTBSnake getPreviousSnake()
Returns the previous snake.

Returns:
Snake contour of previous iteration.

getEnergyValue

public double getEnergyValue()
Get current energy value for the snake.

Returns:
Energy value of the snake.

getPreviousEnergyValue

public double getPreviousEnergyValue()
Get old energy value for the snake at last iteration.

Returns:
Old snake energy value of the previous iteration.

getSegmentLength

public Double getSegmentLength()
Returns desired segment length for resampling.

Returns:
Desired snake segment length.

doResampleSnake

public Boolean doResampleSnake()
Returns true if snake should be resampled during optimization.

Returns:
True, if snake is to be resampled.

normalizeInputImage

public MTBImage normalizeInputImage(MTBImage inimg)
Normalizes image intensities according to normalization mode of operator.

Parameters:
inimg - Image to be normalized.
Returns:
Result image with normalized intensities.

resampleSnake

protected void resampleSnake()
Resamples the snake using the specified segment length.

Note: if snake is normalized, segment length will also be normalized! Normalization of segment length is done by resampling!



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