18 #ifndef itkRGBGibbsPriorFilter_h
19 #define itkRGBGibbsPriorFilter_h
21 #include "vnl/vnl_vector.h"
22 #include "vnl/vnl_matrix.h"
49 template <
typename TInputImage,
typename TClassifiedImage>
69 using typename Superclass::InputImagePixelType;
70 using typename Superclass::InputImageRegionConstIterator;
71 using typename Superclass::InputImageRegionIterator;
72 using typename Superclass::LabelledImageRegionIterator;
73 using typename Superclass::LabelledImagePixelType;
119 return m_LabelledImage;
130 itkDebugMacro(
"setting NumberOfClasses to " << numberOfClasses);
131 if (this->m_NumberOfClasses != numberOfClasses)
133 this->m_NumberOfClasses = numberOfClasses;
143 return this->m_NumberOfClasses;
151 itkDebugMacro(
"setting MaximumNumberOfIterations to " << numberOfIterations);
152 if (this->m_MaximumNumberOfIterations != numberOfIterations)
154 this->m_MaximumNumberOfIterations = numberOfIterations;
165 return this->m_MaximumNumberOfIterations;
169 itkSetMacro(ClusterSize,
unsigned int);
172 itkSetMacro(ObjectLabel, LabelType);
175 static constexpr
unsigned int ImageDimension = TInputImage::ImageDimension;
179 itkSetMacro(BoundaryGradient,
unsigned int);
181 itkSetMacro(ObjectThreshold,
double);
184 itkSetMacro(CliqueWeight_1,
double);
185 itkGetConstMacro(CliqueWeight_1,
double);
186 itkSetMacro(CliqueWeight_2,
double);
187 itkGetConstMacro(CliqueWeight_2,
double);
188 itkSetMacro(CliqueWeight_3,
double);
189 itkGetConstMacro(CliqueWeight_3,
double);
190 itkSetMacro(CliqueWeight_4,
double);
191 itkGetConstMacro(CliqueWeight_4,
double);
192 itkSetMacro(CliqueWeight_5,
double);
193 itkGetConstMacro(CliqueWeight_5,
double);
194 itkSetMacro(CliqueWeight_6,
double);
195 itkGetConstMacro(CliqueWeight_6,
double);
205 PrintSelf(std::ostream & os,
Indent indent)
const override;
211 MinimizeFunctional()
override;
214 GenerateData()
override;
217 ApplyGibbsLabeller();
220 ApplyGPImageFilter();
222 #ifdef ITK_USE_CONCEPT_CHECKING
271 unsigned int m_ImageHeight{ 0 };
272 unsigned int m_ImageDepth{ 0 };
307 GibbsTotalEnergy(
int i);
311 GibbsEnergy(
unsigned int i,
unsigned int k,
unsigned int k1);
331 double m_ObjectThreshold{ 5.0 };
334 #ifndef ITK_MANUAL_INSTANTIATION
335 # include "itkRGBGibbsPriorFilter.hxx"