Class LseCurvatureFlow2
java.lang.Object
gov.nih.mipav.model.algorithms.levelset.LsePdeFilter
gov.nih.mipav.model.algorithms.levelset.LsePdeFilter2
gov.nih.mipav.model.algorithms.levelset.LseCurvatureFlow2
This class implements the curvature flow filter for 2D images
using a finite-difference-based solver for the partial differential
equation:
du/dt = |grad(u)|*divergence(grad(u)/|grad(u)|)
where u(x,y,t) is the evolved image at time t, du/dt is the time
derivative of u, and grad(u) is the gradient of u with respect to the
spatial variables. The notation divergence(Q) = Q0_x + Q1_y, the sum of
first-order derivatives of the vector-valued function Q = (Q0,Q1).
The right-hand side of the PDE is the product of the gradient magnitude with the curvature of the level curves.
- Version:
- 0.1 November 7, 2006
- Author:
- David Eberly
-
Field Summary
Fields 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
ConstructorsConstructorDescriptionLseCurvatureFlow2(int iXBound, int iYBound, float fXSpacing, float fYSpacing, float[] afData, boolean[] abMask, float fBorderValue, int eScaleType) Creates a new LseCurvatureFlow2 object. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidonUpdate(int iX, int iY) The per-pixel update function of the PDE solver.Methods 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, onPreUpdate, onUpdateMethods inherited from class gov.nih.mipav.model.algorithms.levelset.LsePdeFilter
getBorderValue, getQuantity, getScaleType, getTimeStep, setTimeStep, update
-
Constructor Details
-
LseCurvatureFlow2
public LseCurvatureFlow2(int iXBound, int iYBound, float fXSpacing, float fYSpacing, float[] afData, boolean[] abMask, float fBorderValue, int eScaleType) Creates a new LseCurvatureFlow2 object.- 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.
-
-
Method Details
-
onUpdate
protected void onUpdate(int iX, int iY) The per-pixel update function of the PDE solver.- Specified by:
onUpdatein classLsePdeFilter2- Parameters:
iX- The x-value of the pixel to be updated.iY- The y-value of the pixel to be updated.
-