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

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.SnakeOptimizerCoupled
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

@ALDDerivedClass
@ALDAOperator(genericExecutionMode=ALL)
public class SnakeOptimizerCoupled
extends SnakeOptimizer

Image contour segmentation using multiple parametric snakes.

This class provides methods to segment multiple contours in an image based on parametric active contour models, i.e. snakes. Multiple snakes may be coupled in the sense that overlap will be penalized by a common energy term in the functional.

Author:
Birgit Möller

Nested Class Summary
 
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  boolean[] activityArray
          Array of active snakes, suitable for masking snakes in optimization.
protected  int[] colorArray
          Array containing pseudo-colors for snake visualization.
protected  MTBImageRGB dispImg
          Image for displaying intermediate/final results.
protected  int[][] overlapMask
          Mask to indicate overlap regions between snakes.
(package private)  boolean overlapMaskRequested
          Flag to indicate whether an energy requested the overlap mask.
protected  SnakeOptimizerSingle[] snakeOpters
          Array of individual snake optimizers.
protected  SnakeOptimizerSingle snakeOptimizer
          Optimizer object for a single snake.
 
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
SnakeOptimizerCoupled()
          Default constructor.
SnakeOptimizerCoupled(MTBImage img, MTBPolygon2DSet initSnakes, SnakeOptimizerSingle sopt, boolean[] activeArray)
          Default constructor.
 
Method Summary
 SnakeOptimizerCoupled clone()
           
protected  void closeWindows()
          Close all windows openened by this operator (for clean-up).
protected  SnakeOptimizer.Snake_status doIteration()
          Here the main work should be done.
 boolean[] getActivityArray()
          Returns current activity array.
 MTBPolygon2DSet getCurrentSnakes()
          Returns a copy of the set of current snakes.
protected  void initOptimizer()
          Initializes the optimizer.
protected  void plotImageToBackground()
          Copies the input image as background into the output frame.
protected  void plotSnakeToImage(MTBImageRGB img)
           
 void printParams()
          Print current parameter settings to standard output device.
protected  void saveSnake()
          Save intermediate results.
 void setActivityArray(boolean[] array)
          Specify set of active snakes.
 void setColorArray(int[] array)
          Specify pseudo-colors for snake visualization.
protected  void showSnake()
          Display input image with current snake overlayed.
 java.lang.String toString()
           
 void 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, readResolve, requireCounterClockwiseSnakePointOrder, setExcludeMask, setInitialSnakes, setInputImage, setIntermediateResultPath, 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

activityArray

@Parameter(label="Activity array",
           direction=IN,
           required=false,
           description="Array of active snakes.")
protected boolean[] activityArray
Array of active snakes, suitable for masking snakes in optimization.


colorArray

protected transient int[] colorArray
Array containing pseudo-colors for snake visualization.


dispImg

protected transient MTBImageRGB dispImg
Image for displaying intermediate/final results.


overlapMask

protected transient int[][] overlapMask
Mask to indicate overlap regions between snakes.


overlapMaskRequested

transient boolean overlapMaskRequested
Flag to indicate whether an energy requested the overlap mask.


snakeOpters

protected transient SnakeOptimizerSingle[] snakeOpters
Array of individual snake optimizers.


snakeOptimizer

@Parameter(label="Snake Optimizer",
           direction=IN,
           required=true,
           dataIOOrder=3,
           description="Snake optimizer for single snake segmentation.")
protected SnakeOptimizerSingle snakeOptimizer
Optimizer object for a single snake.

Constructor Detail

SnakeOptimizerCoupled

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

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

SnakeOptimizerCoupled

public SnakeOptimizerCoupled(MTBImage img,
                             MTBPolygon2DSet initSnakes,
                             SnakeOptimizerSingle sopt,
                             boolean[] activeArray)
                      throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
Default constructor.

Parameters:
img - Image to work on.
initSnakes - Set of initial snakes.
sopt - Snake optimizer.
activeArray - Array indicating active snakes.
Throws:
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
Method Detail

clone

public SnakeOptimizerCoupled clone()
Specified by:
clone 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

doIteration

protected SnakeOptimizer.Snake_status doIteration()
                                           throws MTBException
Description copied from class: SnakeOptimizer
Here the main work should be done.

Specified by:
doIteration in class SnakeOptimizer
Returns:
Indicates if the iteration was successful.
Throws:
MTBException

getActivityArray

public boolean[] getActivityArray()
Returns current activity array.


getCurrentSnakes

public MTBPolygon2DSet getCurrentSnakes()
Returns a copy of the set of current snakes.

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

initOptimizer

protected void initOptimizer()
                      throws MTBSnakeException,
                             de.unihalle.informatik.Alida.exceptions.ALDOperatorException
Initializes the optimizer.

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

Specified by:
initOptimizer in class SnakeOptimizer
Throws:
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
MTBSnakeException

plotImageToBackground

protected void plotImageToBackground()
Copies the input image as background into the output frame.


plotSnakeToImage

protected void plotSnakeToImage(MTBImageRGB img)

printParams

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

Specified by:
printParams in class SnakeOptimizer

saveSnake

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

Specified by:
saveSnake in class SnakeOptimizer

setActivityArray

public void setActivityArray(boolean[] array)
Specify set of active snakes.

Parameters:
array - Boolean array to indicate active snakes.

setColorArray

public void setColorArray(int[] array)
Specify pseudo-colors for snake visualization.


showSnake

protected void showSnake()
Display input image with current snake overlayed.

Specified by:
showSnake in class SnakeOptimizer

toString

public java.lang.String toString()
Overrides:
toString in class SnakeOptimizer

validateCustom

public void validateCustom()
Overrides:
validateCustom in class SnakeOptimizer