18#ifndef itkBayesianClassifierImageFilter_h
19#define itkBayesianClassifierImageFilter_h
80template <
typename TInputVectorImage,
81 typename TLabelsType =
unsigned char,
82 typename TPosteriorsPrecisionType = double,
83 typename TPriorsPrecisionType =
double>
85 :
public ImageToImageFilter<TInputVectorImage, Image<TLabelsType, TInputVectorImage::ImageDimension>>
104 using typename Superclass::InputImageType;
107 static constexpr unsigned int Dimension = InputImageType::ImageDimension;
152 using typename Superclass::DataObjectPointer;
174 itkSetMacro(NumberOfSmoothingIterations,
unsigned int);
175 itkGetConstMacro(NumberOfSmoothingIterations,
unsigned int);
180 using Superclass::MakeOutput;
184#ifdef ITK_USE_CONCEPT_CHECKING
193 InputPriorsPosteriorsMultiplyOperatorCheck,
229 bool m_UserProvidedPriors{
false };
231 bool m_UserProvidedSmoothingFilter{
false };
235 unsigned int m_NumberOfSmoothingIterations{ 0 };
239#ifndef ITK_MANUAL_INSTANTIATION
240# include "itkBayesianClassifierImageFilter.hxx"
Performs Bayesian Classification on an image.
~BayesianClassifierImageFilter() override=default
virtual void ClassifyBasedOnPosteriors()
typename PosteriorsImageType::Pointer PosteriorsImagePointer
virtual void NormalizeAndSmoothPosteriors()
typename SmoothingFilterType::Pointer SmoothingFilterPointer
typename OutputImageType::Pointer OutputImagePointer
DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx) override
Make a DataObject of the correct type to used as the specified output.
void GenerateData() override
typename PriorsImageType::PixelType PriorsPixelType
typename PriorsImageType::Pointer PriorsImagePointer
typename PosteriorsImageType::PixelType PosteriorsPixelType
virtual void ComputeBayesRule()
typename MembershipImageType::Pointer MembershipImagePointer
PosteriorsImageType * GetPosteriorImage()
typename InputImageType::RegionType ImageRegionType
virtual void SetPriors(const PriorsImageType *)
typename InputImageType::PixelType InputPixelType
void PrintSelf(std::ostream &os, Indent indent) const override
void SetSmoothingFilter(SmoothingFilterType *)
typename MembershipImageType::PixelType MembershipPixelType
void GenerateOutputInformation() override
typename InputImageType::ConstPointer InputImagePointer
TInputVectorImage MembershipImageType
typename OutputImageType::PixelType OutputPixelType
BayesianClassifierImageFilter()
A multi-dimensional iterator templated over image type that walks a region of pixels.
A multi-dimensional iterator templated over image type that walks a region of pixels.
Base class for filters that take an image as input and produce an image as output.
Templated n-dimensional image class.
Control indentation during Print() invocation.
Light weight base class for most itk classes.
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
A decision rule that returns the class label with the largest discriminant score.
Templated n-dimensional vector image class.
SmartPointer< const Self > ConstPointer
SmartPointer< Self > Pointer
#define itkConceptMacro(name, concept)
ImageBaseType::RegionType RegionType
constexpr unsigned int Dimension
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....