1#ifndef SFLSSegmentor3D_h_
2#define SFLSSegmentor3D_h_
15template <
typename TPixel>
27 typedef itk::Image<TPixel, 3>
TImage;
40 typedef typename TImage::IndexType
TIndex;
41 typedef typename TImage::SizeType
TSize;
42 typedef typename TImage::RegionType
TRegion;
56 void setImage(
typename ImageType::Pointer img);
57 void setMask(
typename MaskImageType::Pointer mask);
152 return a - b < eps && b - a < eps;
160#include "SFLSSegmentor3D.txx"
CSFLSSegmentor3D< TPixel > Self
itk::Image< float, 3 > TFloatImage
TImage::RegionType TRegion
itk::Image< double, 3 > TDoubleImage
LSImageType::Pointer mp_phi
itk::Image< TPixel, 3 > TImage
void keepZeroLayerHistory(bool b)
bool getPhiOfTheNbhdWhoIsClosestToZeroLevelInLayerCloserToZeroLevel(long ix, long iy, long iz, double &thePhi)
bool m_keepZeroLayerHistory
void setCurvatureWeight(double a)
void writeZeroLayerToFile(const char *namePrefix)
MaskImageType::Pointer mp_mask
TShortImage ShortImageType
void oneStepLevelSetEvolution()
LabelImageType::Pointer mp_label
SuperClassType::CSFLSLayer CSFLSLayer
TCharImage LabelImageType
virtual void doSegmenation()=0
virtual ~CSFLSSegmentor3D()=default
bool doubleEqual(double a, double b, double eps=1e-10)
CSFLSLayer getZeroLayerAtIteration(unsigned long i)
void writeZeroLayerAtIterationToFile(unsigned long i, const char *name)
double computeKappa(long ix, long iy, long iz)
void setMask(typename MaskImageType::Pointer mask)
std::vector< double > m_force
void setImage(typename ImageType::Pointer img)
void setMaxVolume(double v)
LSImageType::Pointer getLevelSetFunction()
void setMaxRunningTime(double t)
void setNumIter(unsigned long n)
void updateInsideVoxelCount()
ImageType::Pointer mp_img
itk::Image< unsigned char, 3 > TUCharImage
std::vector< CSFLSLayer > m_zeroLayerHistory
virtual void computeForce()=0
SuperClassType::NodeType NodeType
TUCharImage MaskImageType
itk::Image< char, 3 > TCharImage
itk::Image< short, 3 > TShortImage
void initializeSFLSFromMask()
std::list< NodeType > CSFLSLayer
vnl_vector_fixed< int, 3 > NodeType