Class LseThreshold2
java.lang.Object
gov.nih.mipav.model.algorithms.levelset.LsePdeFilter
gov.nih.mipav.model.algorithms.levelset.LsePdeFilter2
gov.nih.mipav.model.algorithms.levelset.LseEvolve2
gov.nih.mipav.model.algorithms.levelset.LseThreshold2
A level-set evolver for 2D images. The PDE to be solved numerically for
I(x,t) is:
dI/dt = -b*P(x)*|grad(I)| + c*F(x)*K(x,t)*|grad(I)|, t > 0
I(x,0) = I0(x)
where the feature image is typically
F(x) = 1/(1+|grad(convolve(G,I0))|) or F(x) = exp(-|grad(convolve(G,I0))|)
where G(x,t) is the Gaussian kernel and where K(x,t) is the curvature of I(x,t). The propagation image, P(x), is computed from the feature image, F(x), as follows. A lower threshold L and an upper threshold U are selected by the user; then
P(x) = F(x) - L, if F(x) invalid input: '<' (U+L)/2
P(x) = U - F(x), if F(x) >= (U+L)/2
The constant b is the propagation weight and the constant c is the curvature weight.
dI/dt = -b*P(x)*|grad(I)| + c*F(x)*K(x,t)*|grad(I)|, t > 0
I(x,0) = I0(x)
where the feature image is typically
F(x) = 1/(1+|grad(convolve(G,I0))|) or F(x) = exp(-|grad(convolve(G,I0))|)
where G(x,t) is the Gaussian kernel and where K(x,t) is the curvature of I(x,t). The propagation image, P(x), is computed from the feature image, F(x), as follows. A lower threshold L and an upper threshold U are selected by the user; then
P(x) = F(x) - L, if F(x) invalid input: '<' (U+L)/2
P(x) = U - F(x), if F(x) >= (U+L)/2
The constant b is the propagation weight and the constant c is the curvature weight.
- Version:
- 0.1 November 7, 2006
- Author:
- David Eberly
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected float[][]The feature image to control the segmentation.protected float[][]The propagation image to control the segmentation.protected floatThe threshold below which the feature image values are clamped to this tolerance.Fields inherited from class gov.nih.mipav.model.algorithms.levelset.LseEvolve2
m_aafD2, m_afAdvection, m_afD1, m_afD1Bwd, m_afD1Fwd, m_fD0, m_fGradMagSqr, m_kParametersFields inherited from class gov.nih.mipav.model.algorithms.levelset.LsePdeFilter2
m_aabMask, m_aafDst, m_aafSrc, m_fFourthInvDxDy, m_fHalfInvDx, m_fHalfInvDy, m_fInvDx, m_fInvDxDx, m_fInvDy, m_fInvDyDy, m_fUmm, m_fUmp, m_fUmz, m_fUpm, m_fUpp, m_fUpz, m_fUzm, m_fUzp, m_fUzz, m_fXSpacing, m_fYSpacing, m_iXBound, m_iYBoundFields inherited from class gov.nih.mipav.model.algorithms.levelset.LsePdeFilter
m_eScaleType, m_fBorderValue, m_fMin, m_fOffset, m_fScale, m_fTimeStep, m_iQuantity, NONE, PRESERVE_ZERO, SYMMETRIC, UNIT -
Constructor Summary
ConstructorsConstructorDescriptionLseThreshold2(int iXBound, int iYBound, float fXSpacing, float fYSpacing, float[] afData, boolean[] abMask, float fBorderValue, int eScaleType, float[] afFeature, float fLowerThreshold, float fUpperThreshold, float fPropagationWeight, float fCurvatureWeight) Create a new level-set evolver for 2D images. -
Method Summary
Modifier and TypeMethodDescriptionprotected floatcomputeCurvatureSpeed(int iX, int iY) Compute the curvature speed at pixel (x,y).protected floatcomputePropagationSpeed(int iX, int iY) Compute the propagation speed at pixel (x,y).Methods inherited from class gov.nih.mipav.model.algorithms.levelset.LseEvolve2
computeAdvection, computeCurvature, computeFunction, computeLaplacianSpeed, getParameters, onPreUpdate, onUpdateMethods inherited from class gov.nih.mipav.model.algorithms.levelset.LsePdeFilter2
assignDirichletImageBorder, assignDirichletMaskBorder, assignNeumannImageBorder, assignNeumannMaskBorder, getMask, getU, getUx, getUxx, getUxy, getUy, getUyy, getXBound, getXSpacing, getYBound, getYSpacing, lookUp5, lookUp9, onPostUpdate, onUpdateMethods inherited from class gov.nih.mipav.model.algorithms.levelset.LsePdeFilter
getBorderValue, getQuantity, getScaleType, getTimeStep, setTimeStep, update
-
Field Details
-
m_fZeroTolerance
protected float m_fZeroToleranceThe threshold below which the feature image values are clamped to this tolerance. The value is hard-coded as 1e-06. -
m_aafFeature
protected float[][] m_aafFeatureThe feature image to control the segmentation. -
m_aafPropagation
protected float[][] m_aafPropagationThe propagation image to control the segmentation.
-
-
Constructor Details
-
LseThreshold2
public LseThreshold2(int iXBound, int iYBound, float fXSpacing, float fYSpacing, float[] afData, boolean[] abMask, float fBorderValue, int eScaleType, float[] afFeature, float fLowerThreshold, float fUpperThreshold, float fPropagationWeight, float fCurvatureWeight) Create a new level-set evolver for 2D images.- Parameters:
iXBound- The x-bound of the image.iYBound- The y-bound of the image.fXSpacing- The x-spacing of the image.fYSpacing- The y-spacing of the image.afData- The image elements, stored in lexicographical order.abMask- The image mask, stored in lexicographical order. A pixel value is processed by the PDE solver only when the mask value is false.fBorderValue- Specifies how to handle the image value. When set to Float.MAX_VALUE, Neumann conditions are in use, in which case zero-valued derivatives are assumed on the image border. Otherwise, Dirichlet conditions are used, in which case the image is assumed to be constant on the border with value specified by fBorderValue.eScaleType- The type of scaling to apply to the input image. The choices are NONE, UNIT, SYMMETRIC, or PRESERVE_ZERO.afFeature- The feature image to control the evolution.fLowerThreshold- The lower threshold L used in computing P(x).fUpperThreshold- The lower threshold U used in computing P(x).fPropagationWeight- The propagation coefficient 'b' in the PDE that controls the evolution.fCurvatureWeight- The curvature coefficient 'c' in the PDE that controls the evolution.
-
-
Method Details
-
computePropagationSpeed
protected float computePropagationSpeed(int iX, int iY) Compute the propagation speed at pixel (x,y). In this evolver, the propagation speed is obtained simply by a lookup into the feature image.- Overrides:
computePropagationSpeedin classLseEvolve2- Parameters:
iX- The x-coordinate of the pixel.iY- The y-coordinate of the pixel.- Returns:
- The propagation speed at the pixel.
-
computeCurvatureSpeed
protected float computeCurvatureSpeed(int iX, int iY) Compute the curvature speed at pixel (x,y). In this evolver, the curvature speed is obtained simply by a lookup into the feature image.- Overrides:
computeCurvatureSpeedin classLseEvolve2- Parameters:
iX- The x-coordinate of the pixel.iY- The y-coordinate of the pixel.- Returns:
- The curvature speed at the pixel.
-