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, de.unihalle.informatik.Alida.operator.events.ALDOperatorExecutionProgressEventListener, EventListener

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

 
 Image contour segmentation using parametric snakes with greedy optimization.
 
 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, 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  MTBSet_SnakeEnergyComputable energies
           
protected  double[] energyWeightsNormed
          List of normalized energy weights.
 
Fields inherited from class de.unihalle.informatik.MiToBo.segmentation.snakes.optimize.SnakeOptimizerSingle
dispImg, doResampling, energy, energyCalculationRequested, intNormMode, normMode, previousEnergy, previousSnake, resampleSegLength, scaleFactor, snake, timer, workingImage
 
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
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.
 MTBSet_SnakeEnergyComputable getEnergySet()
          Returns a reference to the set of energies.
protected  boolean hasEnergies()
          Check if energies are given.
protected  void initOptimizer()
          Initializes the optimizer.
 void printParams()
          Print important parameters to standard output stream.
protected  void setupEnergyTable()
          Inits the table for sampled energy values.
 
Methods inherited from class de.unihalle.informatik.MiToBo.segmentation.snakes.optimize.SnakeOptimizerSingle
closeWindows, disableEnergyCalculation, doResampleSnake, enableEnergyCalculation, getCurrentSnake, getCurrentSnakes, getEnergyValue, getIntensityNormalizationMode, getNormalizationMode, getPreviousEnergyValue, getPreviousSnake, getSegmentLength, getWorkingImage, normalizeInputImage, readResolve, resampleSnake, saveSnake, showSnake, toString, validateCustom
 
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, 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

energies

@Parameter(label="List of Energies",
           direction=IN,
           required=true,
           dataIOOrder=3,
           description="List of snake energies.")
protected MTBSet_SnakeEnergyComputable energies

energyWeightsNormed

protected transient double[] energyWeightsNormed
List of normalized energy weights.

Constructor Detail

SnakeOptimizerSingleGreedy

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

initOptimizer

protected void initOptimizer()
                      throws MTBSnakeException,
                             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
Throws:
{@link - IllegalArgumentException}
{@link - MTBSnakeException}
MTBSnakeException
IllegalArgumentException

doIteration

protected SnakeOptimizer.Snake_status doIteration()
                                           throws MTBSnakeException
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
MTBSnakeException

clone

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

hasEnergies

protected boolean hasEnergies()
Description copied from class: SnakeOptimizerSingle
Check if energies are given.

Specified by:
hasEnergies in class SnakeOptimizerSingle
Returns:
True, if energies are available.

getEnergySet

public MTBSet_SnakeEnergyComputable getEnergySet()
Description copied from class: SnakeOptimizerSingle
Returns a reference to the set of energies.

Specified by:
getEnergySet in class SnakeOptimizerSingle
Returns:
Set of energies.

printParams

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

Overrides:
printParams in class SnakeOptimizerSingle

calcSnakeEnergy

protected double calcSnakeEnergy()
Calculates total snake energy.

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

setupEnergyTable

protected void setupEnergyTable()
Inits the table for sampled energy values.



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