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

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
                      extended by de.unihalle.informatik.MiToBo.segmentation.snakes.optimize.SnakeOptimizerSingleGreedy
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, java.util.EventListener

@ALDAOperator(genericExecutionMode=NONE)
@ALDDerivedClass
public class SnakeOptimizerSingleGreedy
extends SnakeOptimizerSingle

 
 Image contour segmentation using parametric snakes.
 
 This class provides methods to segment contours in an image based on
 parametric active contour models, i.e. snakes. The snake optimization
 is done based on a greedy algorithm. Its main intention is for comparison
 and demontration purposes. You should always keep in mind that greedy
 snake algorithms are slow - particularly since for each point movement
 excessive local energy calculations have to be done. 
 
 

Author:
Birgit Möller

Nested Class Summary
 
Nested classes/interfaces inherited from class de.unihalle.informatik.MiToBo.segmentation.snakes.optimize.SnakeOptimizerSingle
SnakeOptimizerSingle.EnergyNormalizationMode, SnakeOptimizerSingle.IntensityNormalizationMode
 
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
 
Nested classes/interfaces inherited from class de.unihalle.informatik.Alida.operator.ALDOperator
de.unihalle.informatik.Alida.operator.ALDOperator.HidingMode
 
Field Summary
protected  MTBSet_SnakeEnergyDerivable energies
           
protected  double energy
          Current energy of the snake.
 
Fields inherited from class de.unihalle.informatik.MiToBo.segmentation.snakes.optimize.SnakeOptimizerSingle
dispImg, doResampling, energyCalculationRequested, inImgOriginal, intNormMode, normMode, overlapMask, overlapMaskRequested, previousEnergy, previousSnake, resampleSegLength, scaleFactor, snake, timer
 
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, operatorStatus, stepSize, stepWiseExecution
 
Fields inherited from class de.unihalle.informatik.Alida.operator.ALDOperator
completeDAG, name, portHashAccess, verbose, versionProvider
 
Constructor Summary
SnakeOptimizerSingleGreedy()
           
 
Method Summary
protected  double calcSnakeEnergy()
          Calculates total snake energy.
 SnakeOptimizerSingle clone()
           
protected  SnakeOptimizer.Snake_status doIteration()
          Performs one single optimization step, i.e. iterates once over all points.
protected  void initOptimizer()
          Initializes the optimizer.
 void printParams()
          Print important parameters to standard output stream.
protected  void saveSnake()
          Save intermediate results.
protected  void showSnake()
          Display intermediate results by overlaying the input image with the current snake result.
 
Methods inherited from class de.unihalle.informatik.MiToBo.segmentation.snakes.optimize.SnakeOptimizerSingle
closeWindows, disableEnergyCalculation, doesRequireOverlapMask, doResampleSnake, enableEnergyCalculation, getCurrentSnake, getCurrentSnakes, getEnergyValue, getIntensityNormalizationMode, getNormalizationMode, getOverlapMask, getPreviousEnergyValue, getPreviousSnake, getSegmentLength, normalizeInputImage, readResolve, requireOverlapMask, resampleSnake, setOverlapMask, toString
 
Methods inherited from class de.unihalle.informatik.MiToBo.segmentation.snakes.optimize.SnakeOptimizer
disableSaveIntermediateResults, disableShowIntermediateResults, enableSaveIntermediateResults, enableShowIntermediateResults, getExcludeMask, getInitialSnakes, getInputImage, getIterationCount, getResultSnakeImage, getResultSnakes, getSnakeNumber, getStackWithIntermediateResults, operate, requireCounterClockwiseSnakePointOrder, setExcludeMask, setInitialSnakes, setInputImage, setIntermediateResultPath, validateCustom, wantStackWithIntermediateResults
 
Methods inherited from class de.unihalle.informatik.Alida.operator.ALDOperatorControllable
addALDConfigurationEventListener, addALDControlEventListener, fireALDConfigurationEvent, fireALDControlEvent, handleALDConfigurationEvent, handleALDControlEvent, removeALDConfigurationEventListener, removeALDControlEventListener, setNotifyRecursiveFlag
 
Methods inherited from class de.unihalle.informatik.Alida.operator.ALDOperator
deserializeFromXmlFile, fieldContained, getALDPortHashAccessKey, getConstructionMode, getInInoutNames, getInInoutNames, getInNames, getInOutNames, getMissingRequiredInputs, getName, getNumParameters, getOutInoutNames, getOutNames, getParameter, getParameterDescriptor, getParameterNames, getSupplementalNames, getVerbose, getVersion, isConfigured, parametersToXmlObject, print, print, print, printInterface, printInterface, readHistory, reinitializeParameterDescriptors, runOp, runOp, runOp, serializeToXmlFile, setConstructionMode, setName, setParameter, setParametersFromXml, setParametersFromXml, setVerbose, toStringVerbose, unconfiguredItems, validate, validateGeneric, writeHistory, writeHistory, writeHistory, writeParametersToXml
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

energies

@Parameter(label="List of Energies",
           type=PARAMETER,
           direction=IN,
           required=true,
           description="List of snake energies.")
protected MTBSet_SnakeEnergyDerivable energies

energy

protected double energy
Current energy of the snake.

Constructor Detail

SnakeOptimizerSingleGreedy

public SnakeOptimizerSingleGreedy()
                           throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
Throws:
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
Method Detail

calcSnakeEnergy

protected double calcSnakeEnergy()
Calculates total snake energy.

Returns:
Value of local energy, -1 if error during calculation.

clone

public SnakeOptimizerSingle clone()
Specified by:
clone in class SnakeOptimizer

doIteration

protected SnakeOptimizer.Snake_status doIteration()
Performs one single optimization step, i.e. iterates once over all points.

Specified by:
doIteration in class SnakeOptimizer
Returns:
Status of the optimization process.
Throws:
de.unihalle.informatik.Alida.exceptions.ALDOperatorException

initOptimizer

protected void initOptimizer()
                      throws MTBSnakeException,
                             java.lang.IllegalArgumentException
Initializes the optimizer.

Here internal member variables are initialized according to the given parameters, and memory for intermediate results and debug data is allocated.

Overrides:
initOptimizer in class SnakeOptimizerSingle
Parameters:
p - Parameter object (should be of type de.unihalle.informatik.MiToBo.segmentation.snakes.SnakeOptimizerSingleParams ).
Throws:
java.lang.IllegalArgumentException
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
MTBSnakeException

printParams

public void printParams()
Print important parameters to standard output stream.

Overrides:
printParams in class SnakeOptimizerSingle
Throws:
de.unihalle.informatik.Alida.exceptions.ALDOperatorException

saveSnake

protected void saveSnake()
Description copied from class: SnakeOptimizerSingle
Save intermediate results.

Specified by:
saveSnake in class SnakeOptimizerSingle

showSnake

protected void showSnake()
Description copied from class: SnakeOptimizerSingle
Display intermediate results by overlaying the input image with the current snake result.

Overrides:
showSnake in class SnakeOptimizerSingle