17 #ifndef __itkMRFImageFilter_h
18 #define __itkMRFImageFilter_h
21 #include "vnl/vnl_vector.h"
22 #include "vnl/vnl_matrix.h"
128 template <
class TInputImage,
class TClassifiedImage>
162 itkStaticConstMacro(InputImageDimension,
unsigned int,
163 TInputImage::ImageDimension);
195 itkStaticConstMacro(ClassifiedImageDimension,
unsigned int,
196 TClassifiedImage::ImageDimension);
220 typedef typename InputImageFaceListType::iterator
236 typedef typename LabelledImageFaceListType::iterator
243 itkSetMacro(NumberOfClasses,
unsigned int);
244 itkGetConstMacro(NumberOfClasses,
unsigned int);
248 itkSetMacro(MaximumNumberOfIterations,
unsigned int);
249 itkGetConstMacro(MaximumNumberOfIterations,
unsigned int);
253 itkSetMacro(ErrorTolerance,
double);
254 itkGetConstMacro(ErrorTolerance,
double);
258 itkSetMacro(SmoothingFactor,
double);
259 itkGetConstMacro(SmoothingFactor,
double);
267 void SetNeighborhoodRadius(
const unsigned long );
268 void SetNeighborhoodRadius(
const unsigned long *radiusArray );
275 for(
int i=0; i<InputImageDimension; ++i)
277 radius[i] = m_InputImageNeighborhoodRadius[i];
287 virtual void SetMRFNeighborhoodWeight( std::vector<double> BetaMatrix );
288 virtual std::vector<double> GetMRFNeighborhoodWeight()
290 return m_MRFNeighborhoodWeight;
295 MaximumNumberOfIterations=1,
301 itkGetConstReferenceMacro( StopCondition, StopConditionType );
304 itkGetConstReferenceMacro( NumberOfIterations,
unsigned int );
306 #ifdef ITK_USE_CONCEPT_CHECKING
324 void PrintSelf(std::ostream& os,
Indent indent)
const;
333 virtual void ApplyMRFImageFilter();
336 virtual void MinimizeFunctional();
353 virtual void GenerateData();
354 virtual void GenerateInputRequestedRegion();
355 virtual void EnlargeOutputRequestedRegion(
DataObject * );
356 virtual void GenerateOutputInformation();
360 void operator=(
const Self&);
373 typedef typename LabelStatusImageFaceListType::iterator
408 virtual void SetDefaultMRFNeighborhoodWeight( );
411 void ApplyICMLabeller();
418 #ifndef ITK_MANUAL_INSTANTIATION