18#ifndef itkMRFImageFilter_h
19#define itkMRFImageFilter_h
21#include "vnl/vnl_vector.h"
22#include "vnl/vnl_matrix.h"
31#include "ITKMarkovRandomFieldsClassifiersExport.h"
55extern ITKMarkovRandomFieldsClassifiers_EXPORT std::ostream &
147template <
typename TInputImage,
typename TClassifiedImage>
252 itkSetMacro(NumberOfClasses,
unsigned int);
253 itkGetConstMacro(NumberOfClasses,
unsigned int);
258 itkSetMacro(MaximumNumberOfIterations,
unsigned int);
259 itkGetConstMacro(MaximumNumberOfIterations,
unsigned int);
264 itkSetMacro(ErrorTolerance,
double);
265 itkGetConstMacro(ErrorTolerance,
double);
270 itkSetMacro(SmoothingFactor,
double);
271 itkGetConstMacro(SmoothingFactor,
double);
309 virtual std::vector<double>
316#if !defined(ITK_LEGACY_REMOVE)
320 static constexpr MRFStopEnum MaximumNumberOfIterations = MRFStopEnum::MaximumNumberOfIterations;
321 static constexpr MRFStopEnum ErrorTolerance = MRFStopEnum::ErrorTolerance;
329 itkGetConstReferenceMacro(NumberOfIterations,
unsigned int);
436#ifndef ITK_MANUAL_INSTANTIATION
437# include "itkMRFImageFilter.hxx"
Const version of NeighborhoodIterator, defining iteration of a local N-dimensional neighborhood of pi...
itk::Size< VDimension > RadiusType
Base class for all data objects in ITK.
Base class for the ImageClassifierBase object.
SmartPointer< Self > Pointer
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.
typename OutputImageType::Pointer OutputImagePointer
Templated n-dimensional image class.
ImageRegion< VImageDimension > RegionType
SmartPointer< Self > Pointer
Index< VImageDimension > IndexType
Control indentation during Print() invocation.
Contains all enum classes in MRFImageFilter class;.
@ MaximumNumberOfIterations
ImageRegionIterator< TClassifiedImage > LabelledImageRegionIterator
std::vector< double > m_MRFNeighborhoodWeight
ImageRegionConstIterator< TInputImage > InputImageRegionConstIterator
virtual void SetMRFNeighborhoodWeight(std::vector< double > betaMatrix)
NeighborhoodIterator< LabelStatusImageType > LabelStatusImageNeighborhoodIterator
LabelledImageNeighborhoodRadiusType m_LabelledImageNeighborhoodRadius
ImageToImageFilter< TInputImage, TClassifiedImage > Superclass
typename TClassifiedImage::OffsetType LabelledImageOffsetType
int m_TotalNumberOfValidPixelsInOutputImage
SmartPointer< Self > Pointer
typename LabelledImageIndexType::IndexValueType IndexValueType
void GenerateData() override
virtual void DoNeighborhoodOperation(const InputImageNeighborhoodIterator &imageIter, LabelledImageNeighborhoodIterator &labelledIter, LabelStatusImageNeighborhoodIterator &labelStatusIter)
ClassifierType::Pointer m_ClassifierPtr
unsigned int m_MaximumNumberOfIterations
void SetNeighborhoodRadius(const SizeValueType)
ImageRegionIterator< TInputImage > InputImageRegionIterator
typename InputImageNeighborhoodIterator::RadiusType InputImageNeighborhoodRadiusType
void SetClassifier(typename ClassifierType::Pointer ptrToClassifier)
std::vector< double > m_MahalanobisDistance
typename TInputImage::RegionType InputImageRegionType
typename TClassifiedImage::Pointer TrainingImagePointer
void SetNeighborhoodRadius(const NeighborhoodRadiusType &)
LabelStatusImagePointer m_LabelStatusImage
LabelStatusImageNeighborhoodRadiusType m_LabelStatusImageNeighborhoodRadius
void GenerateOutputInformation() override
typename InputImageFacesCalculator::FaceListType InputImageFaceListType
typename TInputImage::SizeType SizeType
ImageRegionIterator< LabelStatusImageType > LabelStatusImageIterator
InputImageNeighborhoodRadiusType m_InputImageNeighborhoodRadius
unsigned int m_NumberOfIterations
virtual void MinimizeFunctional()
const NeighborhoodRadiusType GetNeighborhoodRadius() const
typename TInputImage::ConstPointer InputImageConstPointer
NeighborhoodAlgorithm::ImageBoundaryFacesCalculator< TClassifiedImage > LabelledImageFacesCalculator
int m_TotalNumberOfPixelsInInputImage
static constexpr unsigned int ClassifiedImageDimension
typename InputImageFaceListType::iterator InputImageFaceListIterator
typename LabelStatusImageType::RegionType LabelStatusRegionType
virtual void SetDefaultMRFNeighborhoodWeight()
typename TInputImage::SizeType InputImageSizeType
SmartPointer< const Self > ConstPointer
void GenerateInputRequestedRegion() override
Image< int, Self::InputImageDimension > LabelStatusImageType
typename TClassifiedImage::PixelType LabelledImagePixelType
typename TInputImage::SizeType NeighborhoodRadiusType
NeighborhoodAlgorithm::ImageBoundaryFacesCalculator< TInputImage > InputImageFacesCalculator
void PrintSelf(std::ostream &os, Indent indent) const override
static constexpr unsigned int InputImageDimension
NeighborhoodAlgorithm::ImageBoundaryFacesCalculator< LabelStatusImageType > LabelStatusImageFacesCalculator
typename LabelStatusImageFacesCalculator::FaceListType LabelStatusImageFaceListType
NeighborhoodIterator< TClassifiedImage > LabelledImageNeighborhoodIterator
void SetNeighborhoodRadius(const SizeValueType *radiusArray)
typename TClassifiedImage::IndexType LabelledImageIndexType
unsigned int m_KernelSize
~MRFImageFilter() override=default
typename TInputImage::Pointer InputImagePointer
double * m_ClassProbability
typename TClassifiedImage::Pointer LabelledImagePointer
unsigned int m_NumberOfClasses
typename TClassifiedImage::RegionType LabelledImageRegionType
MRFImageFilterEnums::MRFStop MRFStopEnum
std::vector< double > m_DummyVector
typename TClassifiedImage::PixelType TrainingImagePixelType
MRFStopEnum m_StopCondition
typename LabelledImageFaceListType::iterator LabelledImageFaceListIterator
void EnlargeOutputRequestedRegion(DataObject *) override
typename TInputImage::PixelType InputImagePixelType
virtual void ApplyMRFImageFilter()
TInputImage InputImageType
typename LabelStatusImageFaceListType::iterator LabelStatusImageFaceListIterator
typename LabelStatusImageNeighborhoodIterator::RadiusType LabelStatusImageNeighborhoodRadiusType
typename LabelStatusImageType::IndexType LabelStatusIndexType
ImageClassifierBase< TInputImage, TClassifiedImage > ClassifierType
typename LabelledImageFacesCalculator::FaceListType LabelledImageFaceListType
std::vector< double > m_NeighborInfluence
typename LabelStatusImageType::Pointer LabelStatusImagePointer
typename LabelledImageNeighborhoodIterator::RadiusType LabelledImageNeighborhoodRadiusType
ConstNeighborhoodIterator< TInputImage > InputImageNeighborhoodIterator
virtual std::vector< double > GetMRFNeighborhoodWeight()
Defines iteration of a local N-dimensional neighborhood of pixels across an itk::Image.
itk::Size< VDimension > RadiusType
Implements transparent reference counting.
#define itkConceptMacro(name, concept)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned long SizeValueType
ITKCommon_EXPORT std::ostream & operator<<(std::ostream &out, typename AnatomicalOrientation::CoordinateEnum value)
Splits an image into a main region and several "face" regions which are used to handle computations o...
std::list< RegionType > FaceListType