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