18 #ifndef itkRGBGibbsPriorFilter_h
19 #define itkRGBGibbsPriorFilter_h
21 #include "vnl/vnl_vector.h"
22 #include "vnl/vnl_matrix.h"
47 template <
typename TInputImage,
typename TClassifiedImage>
117 return m_LabelledImage;
122 SetClassifier(
typename ClassifierType::Pointer ptrToClassifier);
128 itkDebugMacro(
"setting NumberOfClasses to " << numberOfClasses);
129 if (this->m_NumberOfClasses != numberOfClasses)
131 this->m_NumberOfClasses = numberOfClasses;
141 return this->m_NumberOfClasses;
149 itkDebugMacro(
"setting MaximumNumberOfIterations to " << numberOfIterations);
150 if (this->m_MaximumNumberOfIterations != numberOfIterations)
152 this->m_MaximumNumberOfIterations = numberOfIterations;
163 return this->m_MaximumNumberOfIterations;
167 itkSetMacro(ClusterSize,
unsigned int);
170 itkSetMacro(ObjectLabel, LabelType);
173 static constexpr
unsigned int ImageDimension = TInputImage::ImageDimension;
177 itkSetMacro(BoundaryGradient,
unsigned int);
179 itkSetMacro(ObjectThreshold,
double);
182 itkSetMacro(CliqueWeight_1,
double);
183 itkGetConstMacro(CliqueWeight_1,
double);
184 itkSetMacro(CliqueWeight_2,
double);
185 itkGetConstMacro(CliqueWeight_2,
double);
186 itkSetMacro(CliqueWeight_3,
double);
187 itkGetConstMacro(CliqueWeight_3,
double);
188 itkSetMacro(CliqueWeight_4,
double);
189 itkGetConstMacro(CliqueWeight_4,
double);
190 itkSetMacro(CliqueWeight_5,
double);
191 itkGetConstMacro(CliqueWeight_5,
double);
192 itkSetMacro(CliqueWeight_6,
double);
193 itkGetConstMacro(CliqueWeight_6,
double);
203 PrintSelf(std::ostream & os,
Indent indent)
const override;
209 MinimizeFunctional()
override;
212 GenerateData()
override;
215 ApplyGibbsLabeller();
218 ApplyGPImageFilter();
220 #ifdef ITK_USE_CONCEPT_CHECKING
269 unsigned int m_ImageHeight{ 0 };
270 unsigned int m_ImageDepth{ 0 };
305 GibbsTotalEnergy(
int i);
309 GibbsEnergy(
unsigned int i,
unsigned int k,
unsigned int k1);
329 double m_ObjectThreshold{ 5.0 };
332 #ifndef ITK_MANUAL_INSTANTIATION
333 # include "itkRGBGibbsPriorFilter.hxx"