|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.unihalle.informatik.Alida.operator.ALDOperator
de.unihalle.informatik.Alida.operator.ALDOperatorControllable
de.unihalle.informatik.MiToBo.core.operator.MTBOperatorControllable
de.unihalle.informatik.MiToBo.segmentation.snakes.optimize.SnakeOptimizer
de.unihalle.informatik.MiToBo.segmentation.snakes.optimize.SnakeOptimizerSingle
de.unihalle.informatik.MiToBo.segmentation.snakes.optimize.SnakeOptimizerSingleVarCalc
@ALDAOperator(genericExecutionMode=ALL, level=STANDARD) @ALDDerivedClass public class SnakeOptimizerSingleVarCalc
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. Note that we assume here a counter-clockwise ordering of the snake points. Pay attention if you deal with upper-left coordinates!In this class snake optimization is done by solving PDEs like in the original Kass et al. paper. TODO correct handling of not closed snakes TODO adaptation of gamma for every single point TODO adaptation of segment length
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 | |
---|---|
private Jama.Matrix |
A
Optimization matrix A, to be modified by snake energies in each iteration. |
private Jama.Matrix |
B
External energy vector, to be modified by snake energies. |
protected MTBSet_SnakeEnergyDerivable |
energySet
List of snake energies to be used in segmentation. |
protected double[] |
energyWeightsNormed
List of normalized energy weights. |
protected double[][] |
gammaAdaptive
Vector containing the current gamma values (step sizes). |
protected MTBGammaUpdate |
gammaUpdater
Gamma update strategy. |
protected java.lang.Double |
initialGammas
Initial step size in snake optimization. |
private Jama.Matrix |
memA
Optimization matrix with values of last calculations. |
protected MTBTermination |
termCriterion
Termination criterion. |
Fields inherited from class de.unihalle.informatik.MiToBo.segmentation.snakes.optimize.SnakeOptimizerSingle |
---|
dispImg, doResampling, energy, 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 | |
---|---|
SnakeOptimizerSingleVarCalc()
Default constructor. |
|
SnakeOptimizerSingleVarCalc(MTBImage img,
MTBPolygon2DSet initSnake,
MTBSet_SnakeEnergyDerivable energs,
MTBGammaUpdate gamUpdater,
java.lang.Double gammas,
MTBTermination tc,
java.lang.Boolean resample,
java.lang.Double segLength)
Default constructor with parameters. |
Method Summary | |
---|---|
protected double |
calcSnakeEnergy()
Calculates total snake energy. |
SnakeOptimizerSingleVarCalc |
clone()
|
protected SnakeOptimizer.Snake_status |
doIteration()
Performs one single optimization step. |
double[][] |
getCurGamma()
Returns current gamma vector. |
java.util.Vector<MTBSnakeEnergyDerivable> |
getEnergies()
Returns a reference to the list of energies. |
Jama.Matrix |
getMemorizedMatrixA()
Returns matrix carrying always the values of the last iteration, or null before first run. |
protected void |
initOptimizer()
Initializes the optimizer. |
void |
printParams()
Print important parameters to standard output stream. |
protected java.lang.Object |
readResolve()
Function for proper initialization of deserialized objects. |
void |
resizeMatrices()
Resize parameter matrices. |
protected void |
saveSnake()
Save intermediate results. |
protected void |
setupEnergyTable()
Inits the table for sampled energy values. |
java.lang.String |
toString()
|
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, requireOverlapMask, resampleSnake, setOverlapMask, showSnake |
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 |
---|
private transient Jama.Matrix A
private transient Jama.Matrix B
@Parameter(label="List of Energies", mode=STANDARD, direction=IN, required=true, description="List of snake energies.", dataIOOrder=3) protected MTBSet_SnakeEnergyDerivable energySet
protected transient double[] energyWeightsNormed
protected transient double[][] gammaAdaptive
Note that the array is two-dimensional, however, the number of columns is always one! This is mainly for compatibility reasons as we need to convert the double array to Jama matrices which require two-dimensional arrays.
@Parameter(label="Gamma Update Strategy", mode=ADVANCED, direction=IN, required=false, dataIOOrder=22, description="Gamma update object.") protected MTBGammaUpdate gammaUpdater
@Parameter(label="Initial Gamma Value", mode=STANDARD, direction=IN, required=false, dataIOOrder=21, description="Initial step sizes.") protected java.lang.Double initialGammas
private transient Jama.Matrix memA
@Parameter(label="Termination Criterion", mode=ADVANCED, direction=IN, required=false, dataIOOrder=20, description="Termination criterion for optimization.") protected MTBTermination termCriterion
Constructor Detail |
---|
public SnakeOptimizerSingleVarCalc() throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
public SnakeOptimizerSingleVarCalc(MTBImage img, MTBPolygon2DSet initSnake, MTBSet_SnakeEnergyDerivable energs, MTBGammaUpdate gamUpdater, java.lang.Double gammas, MTBTermination tc, java.lang.Boolean resample, java.lang.Double segLength) throws de.unihalle.informatik.Alida.exceptions.ALDOperatorException
img
- Gray-scale input image.initSnake
- Array of initial snake polygon(s).energs
- Vector of energy objects.gamUpdater
- Object for gamma adaptation.gammas
- Initial value(s) for step size.tc
- Termination checker.opStepWise
- Enables step-through optimization (requires GUI).stepsize
- Number of iterations per step-through step.normalize
- Flag for enabling snake/image normalization.resample
- Flag for activating snake resampling.segLength
- Desired length of segments are resampling.
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
SnakeAlgosRegionException
Method Detail |
---|
protected double calcSnakeEnergy()
public SnakeOptimizerSingleVarCalc clone()
clone
in class SnakeOptimizer
protected SnakeOptimizer.Snake_status doIteration() throws MTBException
doIteration
in class SnakeOptimizer
MTBException
public double[][] getCurGamma()
public java.util.Vector<MTBSnakeEnergyDerivable> getEnergies()
public Jama.Matrix getMemorizedMatrixA()
protected void initOptimizer() throws MTBSnakeException, de.unihalle.informatik.Alida.exceptions.ALDOperatorException
Here internal member variables are initialized according to the given parameters, and memory for intermediate results and debug data is allocated.
initOptimizer
in class SnakeOptimizerSingle
MTBSnakeException
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
public void printParams()
printParams
in class SnakeOptimizerSingle
de.unihalle.informatik.Alida.exceptions.ALDOperatorException
protected java.lang.Object readResolve()
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.
readResolve
in class SnakeOptimizerSingle
public void resizeMatrices()
The size of the matrices depends on the number of points used to represent the snake. This methods resizes the snake, if the given point number does not coincide with the current size of the matrices. After resizing the matrices, entries are set to zero.
protected void saveSnake()
SnakeOptimizerSingle
saveSnake
in class SnakeOptimizerSingle
protected void setupEnergyTable()
public java.lang.String toString()
toString
in class SnakeOptimizerSingle
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |