@ALDDerivedClass @ALDParametrizedClass public class MTBSnakeEnergyCDIB_Distance extends MTBSnakeEnergyCDImageBased
Class for external energy from a distance transform (distance map / field). The distance field is stored in a two-dimensional double array, where the first dimension includes the y-coordinates of the field and the second dimension hold the x-coordinates. For the distance field the user can specify the distance metric (Euclidean, Chessboard, Cityblock) and can set the foreground of the given binary image. So the external energy is defined as: extEnergy(x,y) = distField[y][x]. !!!ATTENTION!!! If the distance map should be used as external energy, the map should be calculated on the foreground. Normal distance map is calculated in the object, so we want to set the foreground as object. That means, on a black image with white objects, the foreground for the distance map must be set to white and vice versa!
DistanceTransform
Modifier and Type | Field and Description |
---|---|
private DistanceTransform.ForegroundColor |
colorFG |
private double[][] |
distField
The calculated 2D vector field from the distance map.
|
private DistanceTransform.DistanceMetric |
distMetric
The used distance metric for the distance map calculation.
|
private MTBImageByte |
inImage |
height, normalizationFactor, normMode, scaleFactor, width
targetEnergyRange
Constructor and Description |
---|
MTBSnakeEnergyCDIB_Distance() |
MTBSnakeEnergyCDIB_Distance(MTBImageByte image,
DistanceTransform.DistanceMetric d,
DistanceTransform.ForegroundColor f)
Constructor to create a new SnakeExternalEnergyDistance object.
|
Modifier and Type | Method and Description |
---|---|
double |
getDerivativeX(double x,
double y)
Get x-derivative of the distance map at given position using central
differences.
|
double |
getDerivativeY(double x,
double y)
Get y-derivative of the distance map at given position using central
differences.
|
double |
getValue(double x,
double y)
Returns the distance value from the distance map at the given position.
|
boolean |
initEnergy(SnakeOptimizerSingle o)
Init routine which is called once before the energy is actually used.
|
void |
normalizeEnergy()
Normalize the external energy in a range [0.0, 1.0].
|
String |
toString()
Get an identifier string for the energy object.
|
calcEnergy, calcEnergy, getDerivative_MatrixPart, getDerivative_VectorPart, getDerivativeX_norm, getDerivativeY_norm, getScaleFactor, getValue_norm, requiresCounterClockwiseContourSorting, requiresOverlapMask, setScaleFactor, updateStatus
@ALDClassParameter(label="Distance Metric") private DistanceTransform.DistanceMetric distMetric
@ALDClassParameter(label="Foreground Color") private DistanceTransform.ForegroundColor colorFG
@ALDClassParameter(label="Input Image") private MTBImageByte inImage
private double[][] distField
public MTBSnakeEnergyCDIB_Distance()
public MTBSnakeEnergyCDIB_Distance(MTBImageByte image, DistanceTransform.DistanceMetric d, DistanceTransform.ForegroundColor f)
image
- the given input image to calculate the external energyd
- distance metric (euclidean, cityblock, ...)f
- foreground f the image (white or black)public boolean initEnergy(SnakeOptimizerSingle o)
MTBSnakeEnergyDerivable
In this routine global parameter settings can be handled or other initialization stuff be done. The SnakeOptimizer will call this routine once before the actual use of the energy. If no stuff needs to be done in advance the routine should at least return true.
initEnergy
in interface MTBSnakeEnergyComputable
initEnergy
in interface MTBSnakeEnergyDerivable
initEnergy
in class MTBSnakeEnergyCDImageBased
o
- Calling snake optimizer.public double getValue(double x, double y)
getValue
in class MTBSnakeEnergyCDImageBased
x
- x-coordinate of positiony
- y-coordinate of positionpublic double getDerivativeX(double x, double y)
getDerivativeX
in class MTBSnakeEnergyCDImageBased
x
- x-coordinate of pixel positiony
- y-coordinate of pixel positionpublic double getDerivativeY(double x, double y)
getDerivativeY
in class MTBSnakeEnergyCDImageBased
x
- x-coordinate of pixel positiony
- y-coordinate of pixel positionpublic void normalizeEnergy()
normalizeEnergy
in class MTBSnakeEnergyCDImageBased
public String toString()
MTBSnakeEnergyDerivable
When meta parameters are saved to a file, configuration objects need to be converted to strings. Consequently, each snake energy should be associated with a unique and descriptive string for later reference.
toString
in interface MTBSnakeEnergyComputable
toString
in interface MTBSnakeEnergyDerivable
toString
in class Object
Copyright © 2010–2020 Martin Luther University Halle-Wittenberg, Institute of Computer Science, Pattern Recognition and Bioinformatics. All rights reserved.