ITK  4.9.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
itk::MRFImageFilter< TInputImage, TClassifiedImage > Class Template Reference

#include <itkMRFImageFilter.h>

+ Inheritance diagram for itk::MRFImageFilter< TInputImage, TClassifiedImage >:
+ Collaboration diagram for itk::MRFImageFilter< TInputImage, TClassifiedImage >:

Detailed Description

template<typename TInputImage, typename TClassifiedImage>
class itk::MRFImageFilter< TInputImage, TClassifiedImage >

Implementation of a labeller object that uses Markov Random Fields to classify pixels in an image data set.

This object classifies pixels based on a Markov Random Field (MRF) model. This implementation uses the maximum a posteriori (MAP) estimates for modeling the MRF. The object traverses the data set and uses the model generated by the Mahalanobis distance classifier to get the distance between each pixel in the data set to a set of known classes, updates the distances by evaluating the influence of its neighboring pixels (based on a MRF model) and finally, classifies each pixel to the class which has the minimum distance to that pixel (taking the neighborhood influence under consideration). DoNeighborhoodOperation is the function that can be modified to achieve different falvors of MRF filters in derived classes.

The classified initial labeled image is needed. It is important that the number of expected classes be set before calling the classifier. In our case we have used the ImageClassifer using a Gaussian model to generate the initial labels. This classifier requires the user to ensure that an appropriate membership function is provided. See the documentation of the image classifier class for more information.

The influence of a neighborhood on a given pixel's classification (the MRF term) is computed by calculating a weighted sum of number of class labels in a three dimensional neighborhood. The basic idea of this neighborhood influence is that if a large number of neighbors of a pixel are of one class, then the current pixel is likely to be of the same class.

The dimensions of the neighborhood are the same as the input image dimensions, and values of the weighting parameters are either specified by the user or through the beta matrix parameter. The default weighting table is generated during object construction. The following table shows an example of a 3 x 3 x 3 neighborhood and the weighting values used. A 3 x 3 x 3 kernel is used where each value is a nonnegative parameter, which encourages neighbors to be of the same class. In this example, the influence of the pixels in the same slice is assigned a weight 1.7. The influence of the pixels in the same location in the previous and next slice is assigned a weight 1.5. A weight of 1.3 is assigned to the influence of the north, south, east, west, and diagonal pixels in the previous and next slices.

\[\begin{tabular}{ccc} \begin{tabular}{|c|c|c|} 1.3 & 1.3 & 1.3 \\ 1.3 & 1.5 & 1.3 \\ 1.3 & 1.3 & 1.3 \\ \end{tabular} & \begin{tabular}{|c|c|c|} 1.7 & 1.7 & 1.7 \\ 1.7 & 0 & 1.7 \\ 1.7 & 1.7 & 1.7 \\ \end{tabular} & \begin{tabular}{|c|c|c|} 1.3 & 1.3 & 1.3 \\ 1.5 & 1.5 & 1.3 \\ 1.3 & 1.3 & 1.3 \\ \end{tabular} \\ \end{tabular}\]

The user needs to set the neighborhood size using the SetNeighborhoodRadius function. The details on the semantics of a neighborhood can be found in the documentation associated with the itkNeighborhood and related objects. NOTE: The size of the neighborhood must match the size of the neighborhood weighting parameters set by the user.

For minimization of the MRF labeling function the MinimizeFunctional virtual method is called. For our current implementation we use the iterated conditional modes (ICM) algorithm described by Besag in the paper ``On the Statistical Analysis of Dirty Pictures'' in J. Royal Stat. Soc. B, Vol. 48, 1986.

In each iteration, the algorithm visits each pixel in turn and determines whether to update its classification by computing the influence of the classification of the pixel's neighbors and of the intensity data. On each iteration after the first, we reexamine the classification of a pixel only if the classification of some of its neighbors has changed in the previous iteration. The pixels' classification is updated using a synchronous scheme (iteration by iteration) until the error reaches less than the threshold or the number of iteration exceed the maximum set number of iterations. Note: The current implementation supports betaMatrix default weight for two and three dimensional images only. The default for higher dimension is set to unity. This should be overridden by custom weights after filter initialization.

See Also
Neighborhood
ImageIterator
NeighborhoodIterator
Classifier
Examples:
Examples/Statistics/ScalarImageMarkovRandomField1.cxx.

Definition at line 125 of file itkMRFImageFilter.h.

Public Types

typedef ImageClassifierBase
< TInputImage,
TClassifiedImage > 
ClassifierType
 
typedef SmartPointer< const SelfConstPointer
 
typedef
LabelledImageIndexType::IndexValueType 
IndexValueType
 
typedef TInputImage::ConstPointer InputImageConstPointer
 
typedef
InputImageFaceListType::iterator 
InputImageFaceListIterator
 
typedef
InputImageFacesCalculator::FaceListType 
InputImageFaceListType
 
typedef
NeighborhoodAlgorithm::ImageBoundaryFacesCalculator
< TInputImage > 
InputImageFacesCalculator
 
typedef
ConstNeighborhoodIterator
< TInputImage > 
InputImageNeighborhoodIterator
 
typedef
InputImageNeighborhoodIterator::RadiusType 
InputImageNeighborhoodRadiusType
 
typedef TInputImage::PixelType InputImagePixelType
 
typedef TInputImage::Pointer InputImagePointer
 
typedef
ImageRegionConstIterator
< TInputImage > 
InputImageRegionConstIterator
 
typedef ImageRegionIterator
< TInputImage > 
InputImageRegionIterator
 
typedef TInputImage::RegionType InputImageRegionType
 
typedef TInputImage InputImageType
 
typedef
LabelledImageFaceListType::iterator 
LabelledImageFaceListIterator
 
typedef
LabelledImageFacesCalculator::FaceListType 
LabelledImageFaceListType
 
typedef
NeighborhoodAlgorithm::ImageBoundaryFacesCalculator
< TClassifiedImage > 
LabelledImageFacesCalculator
 
typedef TClassifiedImage::IndexType LabelledImageIndexType
 
typedef NeighborhoodIterator
< TClassifiedImage > 
LabelledImageNeighborhoodIterator
 
typedef
LabelledImageNeighborhoodIterator::RadiusType 
LabelledImageNeighborhoodRadiusType
 
typedef
TClassifiedImage::OffsetType 
LabelledImageOffsetType
 
typedef TClassifiedImage::PixelType LabelledImagePixelType
 
typedef TClassifiedImage::Pointer LabelledImagePointer
 
typedef ImageRegionIterator
< TClassifiedImage > 
LabelledImageRegionIterator
 
typedef
TClassifiedImage::RegionType 
LabelledImageRegionType
 
typedef TInputImage::SizeType NeighborhoodRadiusType
 
typedef
Superclass::OutputImagePointer 
OutputImagePointer
 
typedef SmartPointer< SelfPointer
 
typedef MRFImageFilter Self
 
typedef TInputImage::SizeType SizeType
 
enum  StopConditionType {
  MaximumNumberOfIterations = 1,
  ErrorTolerance
}
 
typedef ImageToImageFilter
< TInputImage,
TClassifiedImage > 
Superclass
 
typedef TClassifiedImage::PixelType TrainingImagePixelType
 
typedef TClassifiedImage::Pointer TrainingImagePointer
 
- Public Types inherited from itk::ImageToImageFilter< TInputImage, TClassifiedImage >
typedef SmartPointer< const SelfConstPointer
 
typedef
InputImageType::ConstPointer 
InputImageConstPointer
 
typedef InputImageType::PixelType InputImagePixelType
 
typedef InputImageType::Pointer InputImagePointer
 
typedef InputImageType::RegionType InputImageRegionType
 
typedef TInputImage InputImageType
 
typedef
Superclass::OutputImagePixelType 
OutputImagePixelType
 
typedef
Superclass::OutputImageRegionType 
OutputImageRegionType
 
typedef SmartPointer< SelfPointer
 
typedef ImageToImageFilter Self
 
typedef ImageSource
< TClassifiedImage > 
Superclass
 
- Public Types inherited from itk::ImageSource< TClassifiedImage >
typedef SmartPointer< const SelfConstPointer
 
typedef
Superclass::DataObjectIdentifierType 
DataObjectIdentifierType
 
typedef DataObject::Pointer DataObjectPointer
 
typedef
Superclass::DataObjectPointerArraySizeType 
DataObjectPointerArraySizeType
 
typedef OutputImageType::PixelType OutputImagePixelType
 
typedef OutputImageType::Pointer OutputImagePointer
 
typedef OutputImageType::RegionType OutputImageRegionType
 
typedef TClassifiedImage OutputImageType
 
typedef SmartPointer< SelfPointer
 
typedef ImageSource Self
 
typedef ProcessObject Superclass
 
- Public Types inherited from itk::ProcessObject
typedef SmartPointer< const SelfConstPointer
 
typedef
DataObject::DataObjectIdentifierType 
DataObjectIdentifierType
 
typedef DataObject::Pointer DataObjectPointer
 
typedef std::vector
< DataObjectPointer
DataObjectPointerArray
 
typedef
DataObjectPointerArray::size_type 
DataObjectPointerArraySizeType
 
typedef std::vector
< DataObjectIdentifierType
NameArray
 
typedef SmartPointer< SelfPointer
 
typedef ProcessObject Self
 
typedef Object Superclass
 
- Public Types inherited from itk::Object
typedef SmartPointer< const SelfConstPointer
 
typedef SmartPointer< SelfPointer
 
typedef Object Self
 
typedef LightObject Superclass
 
- Public Types inherited from itk::LightObject
typedef SmartPointer< const SelfConstPointer
 
typedef SmartPointer< SelfPointer
 
typedef LightObject Self
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
virtual std::vector< double > GetMRFNeighborhoodWeight ()
 
virtual const char * GetNameOfClass () const
 
const NeighborhoodRadiusType GetNeighborhoodRadius () const
 
virtual const unsigned int & GetNumberOfIterations () const
 
virtual const StopConditionTypeGetStopCondition () const
 
void SetClassifier (typename ClassifierType::Pointer ptrToClassifier)
 
virtual void SetMRFNeighborhoodWeight (std::vector< double > BetaMatrix)
 
void SetNeighborhoodRadius (const NeighborhoodRadiusType &)
 
void SetNeighborhoodRadius (const SizeValueType)
 
void SetNeighborhoodRadius (const SizeValueType *radiusArray)
 
 typedef (Concept::Convertible< unsigned int, LabelledImagePixelType >) UnsignedIntConvertibleToClassifiedCheck
 
 typedef (Concept::Convertible< LabelledImagePixelType, unsigned int >) ClassifiedConvertibleToUnsignedIntCheck
 
 typedef (Concept::Convertible< LabelledImagePixelType, int >) ClassifiedConvertibleToIntCheck
 
 typedef (Concept::Convertible< int, LabelledImagePixelType >) IntConvertibleToClassifiedCheck
 
 typedef (Concept::SameDimension< InputImageDimension, ClassifiedImageDimension >) SameDimensionCheck
 
virtual void SetNumberOfClasses (unsigned int _arg)
 
virtual unsigned int GetNumberOfClasses () const
 
virtual void SetMaximumNumberOfIterations (unsigned int _arg)
 
virtual unsigned int GetMaximumNumberOfIterations () const
 
virtual void SetErrorTolerance (double _arg)
 
virtual double GetErrorTolerance () const
 
virtual void SetSmoothingFactor (double _arg)
 
virtual double GetSmoothingFactor () const
 
- Public Member Functions inherited from itk::ImageToImageFilter< TInputImage, TClassifiedImage >
const InputImageTypeGetInput () const
 
const InputImageTypeGetInput (unsigned int idx) const
 
virtual void PopBackInput () override
 
virtual void PopFrontInput () override
 
virtual void PushBackInput (const InputImageType *image)
 
virtual void PushFrontInput (const InputImageType *image)
 
virtual void SetInput (const InputImageType *image)
 
virtual void SetInput (unsigned int, const TInputImage *image)
 
virtual void SetCoordinateTolerance (double _arg)
 
virtual double GetCoordinateTolerance () const
 
virtual void SetDirectionTolerance (double _arg)
 
virtual double GetDirectionTolerance () const
 
- Public Member Functions inherited from itk::ImageSource< TClassifiedImage >
OutputImageTypeGetOutput (unsigned int idx)
 
virtual void GraftNthOutput (unsigned int idx, DataObject *output)
 
virtual void GraftOutput (const DataObjectIdentifierType &key, DataObject *output)
 
OutputImageTypeGetOutput ()
 
const OutputImageTypeGetOutput () const
 
virtual void GraftOutput (DataObject *output)
 
virtual
ProcessObject::DataObjectPointer 
MakeOutput (ProcessObject::DataObjectPointerArraySizeType idx) override
 
virtual
ProcessObject::DataObjectPointer 
MakeOutput (const ProcessObject::DataObjectIdentifierType &) override
 
- Public Member Functions inherited from itk::ProcessObject
virtual void AbortGenerateDataOff ()
 
virtual void AbortGenerateDataOn ()
 
virtual const bool & GetAbortGenerateData () const
 
DataObjectPointerArray GetIndexedInputs ()
 
DataObjectPointerArray GetIndexedOutputs ()
 
NameArray GetInputNames () const
 
DataObjectPointerArray GetInputs ()
 
MultiThreader * GetMultiThreader () const
 
DataObjectPointerArraySizeType GetNumberOfIndexedInputs () const
 
DataObjectPointerArraySizeType GetNumberOfIndexedOutputs () const
 
DataObjectPointerArraySizeType GetNumberOfInputs () const
 
DataObjectPointerArraySizeType GetNumberOfOutputs () const
 
virtual
DataObjectPointerArraySizeType 
GetNumberOfValidRequiredInputs () const
 
NameArray GetOutputNames () const
 
DataObjectPointerArray GetOutputs ()
 
virtual const float & GetProgress () const
 
NameArray GetRequiredInputNames () const
 
bool HasInput (const DataObjectIdentifierType &key) const
 
bool HasOutput (const DataObjectIdentifierType &key) const
 
virtual void PrepareOutputs ()
 
virtual void PropagateRequestedRegion (DataObject *output)
 
virtual void ResetPipeline ()
 
virtual void SetAbortGenerateData (bool _arg)
 
virtual void Update ()
 
virtual void UpdateLargestPossibleRegion ()
 
virtual void UpdateOutputData (DataObject *output)
 
virtual void UpdateOutputInformation ()
 
void UpdateProgress (float progress)
 
void SetProgress (float progress)
 
virtual void SetReleaseDataFlag (bool flag)
 
virtual bool GetReleaseDataFlag () const
 
void ReleaseDataFlagOn ()
 
void ReleaseDataFlagOff ()
 
virtual void SetReleaseDataBeforeUpdateFlag (bool _arg)
 
virtual const bool & GetReleaseDataBeforeUpdateFlag () const
 
virtual void ReleaseDataBeforeUpdateFlagOn ()
 
virtual void ReleaseDataBeforeUpdateFlagOff ()
 
virtual void SetNumberOfThreads (ThreadIdType _arg)
 
virtual const ThreadIdTypeGetNumberOfThreads () const
 
- Public Member Functions inherited from itk::Object
unsigned long AddObserver (const EventObject &event, Command *)
 
unsigned long AddObserver (const EventObject &event, Command *) const
 
virtual void DebugOff () const
 
virtual void DebugOn () const
 
CommandGetCommand (unsigned long tag)
 
bool GetDebug () const
 
MetaDataDictionaryGetMetaDataDictionary ()
 
const MetaDataDictionaryGetMetaDataDictionary () const
 
virtual ModifiedTimeType GetMTime () const
 
virtual const TimeStampGetTimeStamp () const
 
bool HasObserver (const EventObject &event) const
 
void InvokeEvent (const EventObject &)
 
void InvokeEvent (const EventObject &) const
 
virtual void Modified () const
 
virtual void Register () const override
 
void RemoveAllObservers ()
 
void RemoveObserver (unsigned long tag)
 
void SetDebug (bool debugFlag) const
 
void SetMetaDataDictionary (const MetaDataDictionary &rhs)
 
virtual void SetReferenceCount (int) override
 
virtual void UnRegister () const noexceptoverride
 
virtual void SetObjectName (std::string _arg)
 
virtual const std::string & GetObjectName () const
 
- Public Member Functions inherited from itk::LightObject
virtual void Delete ()
 
virtual int GetReferenceCount () const
 
 itkCloneMacro (Self)
 
void Print (std::ostream &os, Indent indent=0) const
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::Object
static bool GetGlobalWarningDisplay ()
 
static void GlobalWarningDisplayOff ()
 
static void GlobalWarningDisplayOn ()
 
static Pointer New ()
 
static void SetGlobalWarningDisplay (bool flag)
 
- Static Public Member Functions inherited from itk::LightObject
static void BreakOnError ()
 
static Pointer New ()
 

Static Public Attributes

static const unsigned int ClassifiedImageDimension = TClassifiedImage::ImageDimension
 
static const unsigned int InputImageDimension = TInputImage::ImageDimension
 
- Static Public Attributes inherited from itk::ImageToImageFilter< TInputImage, TClassifiedImage >
static const unsigned int InputImageDimension
 
static const unsigned int OutputImageDimension
 
- Static Public Attributes inherited from itk::ImageSource< TClassifiedImage >
static const unsigned int OutputImageDimension
 

Protected Types

typedef ImageRegionIterator
< LabelStatusImageType
LabelStatusImageIterator
 
typedef NeighborhoodIterator
< LabelStatusImageType
LabelStatusImageNeighborhoodIterator
 
typedef
LabelStatusImageType::Pointer 
LabelStatusImagePointer
 
typedef Image< int,
itkGetStaticConstMacro(InputImageDimension) > 
LabelStatusImageType
 
typedef
LabelStatusImageType::IndexType 
LabelStatusIndexType
 
typedef
LabelStatusImageType::RegionType 
LabelStatusRegionType
 
- Protected Types inherited from itk::ImageToImageFilter< TInputImage, TClassifiedImage >
typedef
ImageToImageFilterDetail::ImageRegionCopier
< itkGetStaticConstMacro(OutputImageDimension),
itkGetStaticConstMacro(InputImageDimension) > 
InputToOutputRegionCopierType
 
typedef
ImageToImageFilterDetail::ImageRegionCopier
< itkGetStaticConstMacro(InputImageDimension),
itkGetStaticConstMacro(OutputImageDimension) > 
OutputToInputRegionCopierType
 

Protected Member Functions

void Allocate ()
 
virtual void ApplyMRFImageFilter ()
 
virtual void DoNeighborhoodOperation (const InputImageNeighborhoodIterator &imageIter, LabelledImageNeighborhoodIterator &labelledIter, LabelStatusImageNeighborhoodIterator &labelStatusIter)
 
virtual void EnlargeOutputRequestedRegion (DataObject *) override
 
virtual void GenerateData () override
 
virtual void GenerateInputRequestedRegion () override
 
virtual void GenerateOutputInformation () override
 
virtual void MinimizeFunctional ()
 
 MRFImageFilter ()
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
 ~MRFImageFilter ()
 
- Protected Member Functions inherited from itk::ImageToImageFilter< TInputImage, TClassifiedImage >
virtual void CallCopyInputRegionToOutputRegion (OutputImageRegionType &destRegion, const InputImageRegionType &srcRegion)
 
virtual void CallCopyOutputRegionToInputRegion (InputImageRegionType &destRegion, const OutputImageRegionType &srcRegion)
 
 ImageToImageFilter ()
 
virtual void VerifyInputInformation () override
 
 ~ImageToImageFilter ()
 
void PushBackInput (const DataObject *input) override
 
void PushFrontInput (const DataObject *input) override
 
- Protected Member Functions inherited from itk::ImageSource< TClassifiedImage >
virtual void AfterThreadedGenerateData ()
 
virtual void AllocateOutputs ()
 
virtual void BeforeThreadedGenerateData ()
 
virtual const
ImageRegionSplitterBase
GetImageRegionSplitter () const
 
 ImageSource ()
 
virtual unsigned int SplitRequestedRegion (unsigned int i, unsigned int pieces, OutputImageRegionType &splitRegion)
 
virtual void ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId)
 
virtual ~ImageSource ()
 
- Protected Member Functions inherited from itk::ProcessObject
virtual void AddInput (DataObject *input)
 
virtual void AddOutput (DataObject *output)
 
bool AddRequiredInputName (const DataObjectIdentifierType &)
 
bool AddRequiredInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx)
 
virtual void CacheInputReleaseDataFlags ()
 
virtual void GenerateOutputRequestedRegion (DataObject *output)
 
DataObjectGetInput (const DataObjectIdentifierType &key)
 
const DataObjectGetInput (const DataObjectIdentifierType &key) const
 
virtual const
DataObjectPointerArraySizeType
GetNumberOfRequiredInputs () const
 
virtual const
DataObjectPointerArraySizeType
GetNumberOfRequiredOutputs () const
 
bool IsIndexedInputName (const DataObjectIdentifierType &) const
 
bool IsIndexedOutputName (const DataObjectIdentifierType &) const
 
bool IsRequiredInputName (const DataObjectIdentifierType &) const
 
 itkLegacyMacro (virtual void RemoveOutput(DataObject *output))
 
 itkLegacyMacro (void SetNumberOfOutputs(DataObjectPointerArraySizeType num))
 
 itkLegacyMacro (virtual void RemoveInput(DataObject *input))
 
 itkLegacyMacro (void SetNumberOfInputs(DataObjectPointerArraySizeType num))
 
DataObjectPointerArraySizeType MakeIndexFromInputName (const DataObjectIdentifierType &name) const
 
DataObjectPointerArraySizeType MakeIndexFromOutputName (const DataObjectIdentifierType &name) const
 
DataObjectIdentifierType MakeNameFromInputIndex (DataObjectPointerArraySizeType idx) const
 
DataObjectIdentifierType MakeNameFromOutputIndex (DataObjectPointerArraySizeType idx) const
 
 ProcessObject ()
 
virtual void PropagateResetPipeline ()
 
virtual void ReleaseInputs ()
 
virtual void RemoveInput (const DataObjectIdentifierType &key)
 
virtual void RemoveInput (DataObjectPointerArraySizeType)
 
virtual void RemoveOutput (const DataObjectIdentifierType &key)
 
virtual void RemoveOutput (DataObjectPointerArraySizeType idx)
 
bool RemoveRequiredInputName (const DataObjectIdentifierType &)
 
virtual void RestoreInputReleaseDataFlags ()
 
virtual void SetInput (const DataObjectIdentifierType &key, DataObject *input)
 
virtual void SetNthInput (DataObjectPointerArraySizeType num, DataObject *input)
 
virtual void SetNthOutput (DataObjectPointerArraySizeType num, DataObject *output)
 
void SetNumberOfIndexedInputs (DataObjectPointerArraySizeType num)
 
void SetNumberOfIndexedOutputs (DataObjectPointerArraySizeType num)
 
virtual void SetNumberOfRequiredInputs (DataObjectPointerArraySizeType)
 
virtual void SetNumberOfRequiredOutputs (DataObjectPointerArraySizeType _arg)
 
virtual void SetOutput (const DataObjectIdentifierType &key, DataObject *output)
 
virtual void SetPrimaryInput (DataObject *input)
 
virtual void SetPrimaryOutput (DataObject *output)
 
void SetRequiredInputNames (const NameArray &)
 
virtual void VerifyPreconditions ()
 
 ~ProcessObject ()
 
DataObjectGetInput (DataObjectPointerArraySizeType idx)
 
const DataObjectGetInput (DataObjectPointerArraySizeType idx) const
 
DataObjectGetPrimaryInput ()
 
const DataObjectGetPrimaryInput () const
 
virtual void SetPrimaryInputName (const DataObjectIdentifierType &key)
 
virtual const char * GetPrimaryInputName (void) const
 
DataObjectGetOutput (const DataObjectIdentifierType &key)
 
const DataObjectGetOutput (const DataObjectIdentifierType &key) const
 
virtual void SetPrimaryOutputName (const DataObjectIdentifierType &key)
 
virtual const char * GetPrimaryOutputName (void) const
 
DataObjectGetOutput (DataObjectPointerArraySizeType idx)
 
const DataObjectGetOutput (DataObjectPointerArraySizeType idx) const
 
DataObjectGetPrimaryOutput ()
 
const DataObjectGetPrimaryOutput () const
 
- Protected Member Functions inherited from itk::Object
 Object ()
 
bool PrintObservers (std::ostream &os, Indent indent) const
 
virtual void SetTimeStamp (const TimeStamp &time)
 
virtual ~Object ()
 
- Protected Member Functions inherited from itk::LightObject
virtual LightObject::Pointer InternalClone () const
 
 LightObject ()
 
virtual void PrintHeader (std::ostream &os, Indent indent) const
 
virtual void PrintTrailer (std::ostream &os, Indent indent) const
 
virtual ~LightObject ()
 

Private Types

typedef TInputImage::SizeType InputImageSizeType
 
typedef
LabelStatusImageFaceListType::iterator 
LabelStatusImageFaceListIterator
 
typedef
LabelStatusImageFacesCalculator::FaceListType 
LabelStatusImageFaceListType
 
typedef
NeighborhoodAlgorithm::ImageBoundaryFacesCalculator
< LabelStatusImageType
LabelStatusImageFacesCalculator
 
typedef
LabelStatusImageNeighborhoodIterator::RadiusType 
LabelStatusImageNeighborhoodRadiusType
 

Private Member Functions

void ApplyICMLabeller ()
 
 MRFImageFilter (const Self &) ITK_DELETE_FUNCTION
 
void operator= (const Self &) ITK_DELETE_FUNCTION
 
virtual void SetDefaultMRFNeighborhoodWeight ()
 

Private Attributes

ClassifierType::Pointer m_ClassifierPtr
 
double * m_ClassProbability
 
std::vector< double > m_DummyVector
 
int m_ErrorCounter
 
double m_ErrorTolerance
 
InputImageNeighborhoodRadiusType m_InputImageNeighborhoodRadius
 
unsigned int m_KernelSize
 
LabelledImageNeighborhoodRadiusType m_LabelledImageNeighborhoodRadius
 
LabelStatusImagePointer m_LabelStatusImage
 
LabelStatusImageNeighborhoodRadiusType m_LabelStatusImageNeighborhoodRadius
 
std::vector< double > m_MahalanobisDistance
 
unsigned int m_MaximumNumberOfIterations
 
std::vector< double > m_MRFNeighborhoodWeight
 
int m_NeighborhoodSize
 
std::vector< double > m_NeighborInfluence
 
unsigned int m_NumberOfClasses
 
unsigned int m_NumberOfIterations
 
double m_SmoothingFactor
 
StopConditionType m_StopCondition
 
int m_TotalNumberOfPixelsInInputImage
 
int m_TotalNumberOfValidPixelsInOutputImage
 

Additional Inherited Members

- Static Protected Member Functions inherited from itk::ImageSource< TClassifiedImage >
static const
ImageRegionSplitterBase
GetGlobalDefaultSplitter ()
 
static ITK_THREAD_RETURN_TYPE ThreaderCallback (void *arg)
 
- Protected Attributes inherited from itk::ProcessObject
TimeStamp m_OutputInformationMTime
 
bool m_Updating
 
- Protected Attributes inherited from itk::LightObject
AtomicInt< int > m_ReferenceCount
 

Member Typedef Documentation

template<typename TInputImage , typename TClassifiedImage >
typedef ImageClassifierBase< TInputImage, TClassifiedImage > itk::MRFImageFilter< TInputImage, TClassifiedImage >::ClassifierType

Type definitions for classifier to be used for the MRF lavbelling.

Definition at line 195 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef SmartPointer< const Self > itk::MRFImageFilter< TInputImage, TClassifiedImage >::ConstPointer

Definition at line 133 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef LabelledImageIndexType::IndexValueType itk::MRFImageFilter< TInputImage, TClassifiedImage >::IndexValueType

Definition at line 181 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef TInputImage::ConstPointer itk::MRFImageFilter< TInputImage, TClassifiedImage >::InputImageConstPointer

Definition at line 145 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef InputImageFaceListType::iterator itk::MRFImageFilter< TInputImage, TClassifiedImage >::InputImageFaceListIterator

Definition at line 217 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef InputImageFacesCalculator::FaceListType itk::MRFImageFilter< TInputImage, TClassifiedImage >::InputImageFaceListType

Definition at line 214 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef NeighborhoodAlgorithm::ImageBoundaryFacesCalculator< TInputImage > itk::MRFImageFilter< TInputImage, TClassifiedImage >::InputImageFacesCalculator

Definition at line 211 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef ConstNeighborhoodIterator< TInputImage > itk::MRFImageFilter< TInputImage, TClassifiedImage >::InputImageNeighborhoodIterator

Input image neighborhood iterator and kernel size typedef

Definition at line 205 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef InputImageNeighborhoodIterator::RadiusType itk::MRFImageFilter< TInputImage, TClassifiedImage >::InputImageNeighborhoodRadiusType

Definition at line 208 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef TInputImage::PixelType itk::MRFImageFilter< TInputImage, TClassifiedImage >::InputImagePixelType

Type definition for the input image pixel type.

Definition at line 148 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef TInputImage::Pointer itk::MRFImageFilter< TInputImage, TClassifiedImage >::InputImagePointer

Definition at line 144 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef ImageRegionConstIterator< TInputImage > itk::MRFImageFilter< TInputImage, TClassifiedImage >::InputImageRegionConstIterator

Definition at line 155 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef ImageRegionIterator< TInputImage > itk::MRFImageFilter< TInputImage, TClassifiedImage >::InputImageRegionIterator

Type definition for the input image region iterator

Definition at line 154 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef TInputImage::RegionType itk::MRFImageFilter< TInputImage, TClassifiedImage >::InputImageRegionType

Type definition for the input image region type.

Definition at line 151 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef TInputImage::SizeType itk::MRFImageFilter< TInputImage, TClassifiedImage >::InputImageSizeType
private

Definition at line 367 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef TInputImage itk::MRFImageFilter< TInputImage, TClassifiedImage >::InputImageType

Type definition for the input image.

Definition at line 140 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef LabelledImageFaceListType::iterator itk::MRFImageFilter< TInputImage, TClassifiedImage >::LabelledImageFaceListIterator

Definition at line 233 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef LabelledImageFacesCalculator::FaceListType itk::MRFImageFilter< TInputImage, TClassifiedImage >::LabelledImageFaceListType

Definition at line 230 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef NeighborhoodAlgorithm::ImageBoundaryFacesCalculator< TClassifiedImage > itk::MRFImageFilter< TInputImage, TClassifiedImage >::LabelledImageFacesCalculator

Definition at line 227 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef TClassifiedImage::IndexType itk::MRFImageFilter< TInputImage, TClassifiedImage >::LabelledImageIndexType

Type definition for the classified image index type.

Definition at line 180 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef NeighborhoodIterator< TClassifiedImage > itk::MRFImageFilter< TInputImage, TClassifiedImage >::LabelledImageNeighborhoodIterator

Labelled image neighborhood interator typedef

Definition at line 221 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef LabelledImageNeighborhoodIterator::RadiusType itk::MRFImageFilter< TInputImage, TClassifiedImage >::LabelledImageNeighborhoodRadiusType

Definition at line 224 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef TClassifiedImage::OffsetType itk::MRFImageFilter< TInputImage, TClassifiedImage >::LabelledImageOffsetType

Type definition for the classified image offset type.

Definition at line 184 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef TClassifiedImage::PixelType itk::MRFImageFilter< TInputImage, TClassifiedImage >::LabelledImagePixelType

Type definitions for the classified image pixel type. It has to be the same type as the training image.

Definition at line 173 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef TClassifiedImage::Pointer itk::MRFImageFilter< TInputImage, TClassifiedImage >::LabelledImagePointer

Type definitions for the labelled image. It is derived from the training image.

Definition at line 169 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef ImageRegionIterator< TClassifiedImage > itk::MRFImageFilter< TInputImage, TClassifiedImage >::LabelledImageRegionIterator

Type definition for the input image region iterator

Definition at line 188 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef TClassifiedImage::RegionType itk::MRFImageFilter< TInputImage, TClassifiedImage >::LabelledImageRegionType

Type definitions for the classified image pixel type. It has to be the same type as the training image.

Definition at line 177 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef LabelStatusImageFaceListType::iterator itk::MRFImageFilter< TInputImage, TClassifiedImage >::LabelStatusImageFaceListIterator
private

Definition at line 379 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef LabelStatusImageFacesCalculator::FaceListType itk::MRFImageFilter< TInputImage, TClassifiedImage >::LabelStatusImageFaceListType
private

Definition at line 376 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef NeighborhoodAlgorithm::ImageBoundaryFacesCalculator< LabelStatusImageType > itk::MRFImageFilter< TInputImage, TClassifiedImage >::LabelStatusImageFacesCalculator
private

Definition at line 373 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef ImageRegionIterator< LabelStatusImageType > itk::MRFImageFilter< TInputImage, TClassifiedImage >::LabelStatusImageIterator
protected

Definition at line 344 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef NeighborhoodIterator< LabelStatusImageType > itk::MRFImageFilter< TInputImage, TClassifiedImage >::LabelStatusImageNeighborhoodIterator
protected

Labelled status image neighborhood interator typedef

Definition at line 348 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef LabelStatusImageNeighborhoodIterator::RadiusType itk::MRFImageFilter< TInputImage, TClassifiedImage >::LabelStatusImageNeighborhoodRadiusType
private

Definition at line 370 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef LabelStatusImageType::Pointer itk::MRFImageFilter< TInputImage, TClassifiedImage >::LabelStatusImagePointer
protected

Definition at line 343 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef Image< int, itkGetStaticConstMacro(InputImageDimension) > itk::MRFImageFilter< TInputImage, TClassifiedImage >::LabelStatusImageType
protected

Definition at line 340 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef LabelStatusImageType::IndexType itk::MRFImageFilter< TInputImage, TClassifiedImage >::LabelStatusIndexType
protected

Definition at line 341 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef LabelStatusImageType::RegionType itk::MRFImageFilter< TInputImage, TClassifiedImage >::LabelStatusRegionType
protected

Definition at line 342 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef TInputImage::SizeType itk::MRFImageFilter< TInputImage, TClassifiedImage >::NeighborhoodRadiusType

Radius typedef support.

Definition at line 201 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef Superclass::OutputImagePointer itk::MRFImageFilter< TInputImage, TClassifiedImage >::OutputImagePointer

Definition at line 134 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef SmartPointer< Self > itk::MRFImageFilter< TInputImage, TClassifiedImage >::Pointer

Definition at line 132 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef MRFImageFilter itk::MRFImageFilter< TInputImage, TClassifiedImage >::Self

Standard class typedefs.

Definition at line 130 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef TInputImage::SizeType itk::MRFImageFilter< TInputImage, TClassifiedImage >::SizeType

Size and value typedef support.

Definition at line 198 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef ImageToImageFilter< TInputImage, TClassifiedImage > itk::MRFImageFilter< TInputImage, TClassifiedImage >::Superclass

Definition at line 131 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef TClassifiedImage::PixelType itk::MRFImageFilter< TInputImage, TClassifiedImage >::TrainingImagePixelType

Type definitions for the training image pixel type.

Definition at line 165 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
typedef TClassifiedImage::Pointer itk::MRFImageFilter< TInputImage, TClassifiedImage >::TrainingImagePointer

Type definitions for the training image.

Definition at line 162 of file itkMRFImageFilter.h.

Member Enumeration Documentation

template<typename TInputImage , typename TClassifiedImage >
enum itk::MRFImageFilter::StopConditionType
Enumerator
MaximumNumberOfIterations 
ErrorTolerance 

Definition at line 296 of file itkMRFImageFilter.h.

Constructor & Destructor Documentation

template<typename TInputImage , typename TClassifiedImage >
itk::MRFImageFilter< TInputImage, TClassifiedImage >::MRFImageFilter ( )
protected
template<typename TInputImage , typename TClassifiedImage >
itk::MRFImageFilter< TInputImage, TClassifiedImage >::~MRFImageFilter ( )
protected
template<typename TInputImage , typename TClassifiedImage >
itk::MRFImageFilter< TInputImage, TClassifiedImage >::MRFImageFilter ( const Self )
private

Member Function Documentation

template<typename TInputImage , typename TClassifiedImage >
void itk::MRFImageFilter< TInputImage, TClassifiedImage >::Allocate ( )
protected

Allocate memory for labelled images.

template<typename TInputImage , typename TClassifiedImage >
void itk::MRFImageFilter< TInputImage, TClassifiedImage >::ApplyICMLabeller ( )
private
template<typename TInputImage , typename TClassifiedImage >
virtual void itk::MRFImageFilter< TInputImage, TClassifiedImage >::ApplyMRFImageFilter ( )
protectedvirtual

Apply MRF Classifier. In this example the images are labelled using Iterated Conditional Mode algorithm by J. Besag, "On statistical analysis of dirty pictures," J. Royal Stat. Soc. B, vol. 48, pp. 259-302, 1986.

template<typename TInputImage , typename TClassifiedImage >
virtual::itk::LightObject::Pointer itk::MRFImageFilter< TInputImage, TClassifiedImage >::CreateAnother ( ) const
virtual

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::Object.

Reimplemented in itk::RGBGibbsPriorFilter< TInputImage, TClassifiedImage >.

template<typename TInputImage , typename TClassifiedImage >
virtual void itk::MRFImageFilter< TInputImage, TClassifiedImage >::DoNeighborhoodOperation ( const InputImageNeighborhoodIterator imageIter,
LabelledImageNeighborhoodIterator labelledIter,
LabelStatusImageNeighborhoodIterator labelStatusIter 
)
protectedvirtual
template<typename TInputImage , typename TClassifiedImage >
virtual void itk::MRFImageFilter< TInputImage, TClassifiedImage >::EnlargeOutputRequestedRegion ( DataObject )
overrideprotectedvirtual

Give the process object a chance to indictate that it will produce more output than it was requested to produce. For example, many imaging filters must compute the entire output at once or can only produce output in complete slices. Such filters cannot handle smaller requested regions. These filters must provide an implementation of this method, setting the output requested region to the size they will produce. By default, a process object does not modify the size of the output requested region.

Reimplemented from itk::ProcessObject.

template<typename TInputImage , typename TClassifiedImage >
virtual void itk::MRFImageFilter< TInputImage, TClassifiedImage >::GenerateData ( void  )
overrideprotectedvirtual

A version of GenerateData() specific for image processing filters. This implementation will split the processing across multiple threads. The buffer is allocated by this method. Then the BeforeThreadedGenerateData() method is called (if provided). Then, a series of threads are spawned each calling ThreadedGenerateData(). After all the threads have completed processing, the AfterThreadedGenerateData() method is called (if provided). If an image processing filter cannot be threaded, the filter should provide an implementation of GenerateData(). That implementation is responsible for allocating the output buffer. If a filter an be threaded, it should NOT provide a GenerateData() method but should provide a ThreadedGenerateData() instead.

See Also
ThreadedGenerateData()

Reimplemented from itk::ImageSource< TClassifiedImage >.

Reimplemented in itk::RGBGibbsPriorFilter< TInputImage, TClassifiedImage >.

template<typename TInputImage , typename TClassifiedImage >
virtual void itk::MRFImageFilter< TInputImage, TClassifiedImage >::GenerateInputRequestedRegion ( void  )
overrideprotectedvirtual

What is the input requested region that is required to produce the output requested region? The base assumption for image processing filters is that the input requested region can be set to match the output requested region. If a filter requires more input (for instance a filter that uses neighborhoods needs more input than output to avoid introducing artificial boundary conditions) or less input (for instance a magnify filter) will have to override this method. In doing so, it should call its superclass' implementation as its first step. Note that imaging filters operate differently than the classes to this point in the class hierarchy. Up till now, the base assumption has been that the largest possible region will be requested of the input.

This implementation of GenerateInputRequestedRegion() only processes the inputs that are a subclass of the ImageBase<InputImageDimension>. If an input is another type of DataObject (including an Image of a different dimension), they are skipped by this method. The subclasses of ImageToImageFilter are responsible for providing an implementation of GenerateInputRequestedRegion() when there are multiple inputs of different types.

See Also
ProcessObject::GenerateInputRequestedRegion(), ImageSource::GenerateInputRequestedRegion()

Reimplemented from itk::ImageToImageFilter< TInputImage, TClassifiedImage >.

template<typename TInputImage , typename TClassifiedImage >
virtual void itk::MRFImageFilter< TInputImage, TClassifiedImage >::GenerateOutputInformation ( )
overrideprotectedvirtual

Generate the information describing the output data. The default implementation of this method will copy information from the input to the output. A filter may override this method if its output will have different information than its input. For instance, a filter that shrinks an image will need to provide an implementation for this method that changes the spacing of the pixels. Such filters should call their superclass' implementation of this method prior to changing the information values they need (i.e. GenerateOutputInformation() should call Superclass::GenerateOutputInformation() prior to changing the information.

Reimplemented from itk::ProcessObject.

template<typename TInputImage , typename TClassifiedImage >
virtual double itk::MRFImageFilter< TInputImage, TClassifiedImage >::GetErrorTolerance ( ) const
virtual

Set/Get the error tollerance level which is used as a threshold to quit the iterations

template<typename TInputImage , typename TClassifiedImage >
virtual unsigned int itk::MRFImageFilter< TInputImage, TClassifiedImage >::GetMaximumNumberOfIterations ( ) const
virtual

Set/Get the number of iteration of the Iterated Conditional Mode (ICM) algorithm. A default value is set at 50 iterations.

Reimplemented in itk::RGBGibbsPriorFilter< TInputImage, TClassifiedImage >.

template<typename TInputImage , typename TClassifiedImage >
virtual std::vector< double > itk::MRFImageFilter< TInputImage, TClassifiedImage >::GetMRFNeighborhoodWeight ( )
inlinevirtual
template<typename TInputImage , typename TClassifiedImage >
virtual const char* itk::MRFImageFilter< TInputImage, TClassifiedImage >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::ImageToImageFilter< TInputImage, TClassifiedImage >.

Reimplemented in itk::RGBGibbsPriorFilter< TInputImage, TClassifiedImage >.

template<typename TInputImage , typename TClassifiedImage >
const NeighborhoodRadiusType itk::MRFImageFilter< TInputImage, TClassifiedImage >::GetNeighborhoodRadius ( ) const
inline
template<typename TInputImage , typename TClassifiedImage >
virtual unsigned int itk::MRFImageFilter< TInputImage, TClassifiedImage >::GetNumberOfClasses ( ) const
virtual

Set/Get the number of classes.

Reimplemented in itk::RGBGibbsPriorFilter< TInputImage, TClassifiedImage >.

template<typename TInputImage , typename TClassifiedImage >
virtual const unsigned int& itk::MRFImageFilter< TInputImage, TClassifiedImage >::GetNumberOfIterations ( ) const
virtual
template<typename TInputImage , typename TClassifiedImage >
virtual double itk::MRFImageFilter< TInputImage, TClassifiedImage >::GetSmoothingFactor ( ) const
virtual

Set/Get the degree of smoothing desired

template<typename TInputImage , typename TClassifiedImage >
virtual const StopConditionType& itk::MRFImageFilter< TInputImage, TClassifiedImage >::GetStopCondition ( ) const
virtual

Get condition that stops the MRF filter (Number of Iterations / Error tolerance )

template<typename TInputImage , typename TClassifiedImage >
virtual void itk::MRFImageFilter< TInputImage, TClassifiedImage >::MinimizeFunctional ( )
protectedvirtual

Minimization algorithm to be used.

Reimplemented in itk::RGBGibbsPriorFilter< TInputImage, TClassifiedImage >.

template<typename TInputImage , typename TClassifiedImage >
static Pointer itk::MRFImageFilter< TInputImage, TClassifiedImage >::New ( )
static

Method for creation through the object factory.

template<typename TInputImage , typename TClassifiedImage >
void itk::MRFImageFilter< TInputImage, TClassifiedImage >::operator= ( const Self )
private
template<typename TInputImage , typename TClassifiedImage >
void itk::MRFImageFilter< TInputImage, TClassifiedImage >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
overrideprotectedvirtual

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from itk::ImageToImageFilter< TInputImage, TClassifiedImage >.

Reimplemented in itk::RGBGibbsPriorFilter< TInputImage, TClassifiedImage >.

template<typename TInputImage , typename TClassifiedImage >
void itk::MRFImageFilter< TInputImage, TClassifiedImage >::SetClassifier ( typename ClassifierType::Pointer  ptrToClassifier)

Set the pointer to the classifer being used.

template<typename TInputImage , typename TClassifiedImage >
virtual void itk::MRFImageFilter< TInputImage, TClassifiedImage >::SetDefaultMRFNeighborhoodWeight ( )
privatevirtual

Set/Get the weighting parameters (Beta Matrix). A default 3 x 3 x 3 matrix is provided. However, the user is allowed to override it with their choice of weights for a 3 x 3 x 3 matrix.

template<typename TInputImage , typename TClassifiedImage >
virtual void itk::MRFImageFilter< TInputImage, TClassifiedImage >::SetErrorTolerance ( double  _arg)
virtual

Set/Get the error tollerance level which is used as a threshold to quit the iterations

template<typename TInputImage , typename TClassifiedImage >
virtual void itk::MRFImageFilter< TInputImage, TClassifiedImage >::SetMaximumNumberOfIterations ( unsigned int  _arg)
virtual

Set/Get the number of iteration of the Iterated Conditional Mode (ICM) algorithm. A default value is set at 50 iterations.

Reimplemented in itk::RGBGibbsPriorFilter< TInputImage, TClassifiedImage >.

template<typename TInputImage , typename TClassifiedImage >
virtual void itk::MRFImageFilter< TInputImage, TClassifiedImage >::SetMRFNeighborhoodWeight ( std::vector< double >  BetaMatrix)
virtual

Set the weighting parameters (used in MRF algorithms). This is a function allowing the users to set the weight matrix by providing a a 1D array of weights. The default implementation supports a 3 x 3 x 3 kernel. The labeler needs to be extended for a different kernel size.

template<typename TInputImage , typename TClassifiedImage >
void itk::MRFImageFilter< TInputImage, TClassifiedImage >::SetNeighborhoodRadius ( const NeighborhoodRadiusType )

Set the neighborhood radius

template<typename TInputImage , typename TClassifiedImage >
void itk::MRFImageFilter< TInputImage, TClassifiedImage >::SetNeighborhoodRadius ( const SizeValueType  )

Sets the radius for the neighborhood, calculates size from the radius, and allocates storage.

template<typename TInputImage , typename TClassifiedImage >
void itk::MRFImageFilter< TInputImage, TClassifiedImage >::SetNeighborhoodRadius ( const SizeValueType radiusArray)
template<typename TInputImage , typename TClassifiedImage >
virtual void itk::MRFImageFilter< TInputImage, TClassifiedImage >::SetNumberOfClasses ( unsigned int  _arg)
virtual

Set/Get the number of classes.

Reimplemented in itk::RGBGibbsPriorFilter< TInputImage, TClassifiedImage >.

template<typename TInputImage , typename TClassifiedImage >
virtual void itk::MRFImageFilter< TInputImage, TClassifiedImage >::SetSmoothingFactor ( double  _arg)
virtual

Set/Get the degree of smoothing desired

template<typename TInputImage , typename TClassifiedImage >
itk::MRFImageFilter< TInputImage, TClassifiedImage >::typedef ( Concept::Convertible< unsigned int, LabelledImagePixelType )

This class requires UnsignedIntConvertibleToClassifiedCheck in the form of ( Concept::Convertible< unsigned int, LabelledImagePixelType > )

template<typename TInputImage , typename TClassifiedImage >
itk::MRFImageFilter< TInputImage, TClassifiedImage >::typedef ( Concept::Convertible< LabelledImagePixelType, unsigned int >  )

This class requires ClassifiedConvertibleToUnsignedIntCheck in the form of ( Concept::Convertible< LabelledImagePixelType, unsigned int > )

template<typename TInputImage , typename TClassifiedImage >
itk::MRFImageFilter< TInputImage, TClassifiedImage >::typedef ( Concept::Convertible< LabelledImagePixelType, int >  )

This class requires ClassifiedConvertibleToIntCheck in the form of ( Concept::Convertible< LabelledImagePixelType, int > )

template<typename TInputImage , typename TClassifiedImage >
itk::MRFImageFilter< TInputImage, TClassifiedImage >::typedef ( Concept::Convertible< int, LabelledImagePixelType )

This class requires IntConvertibleToClassifiedCheck in the form of ( Concept::Convertible< int, LabelledImagePixelType > )

template<typename TInputImage , typename TClassifiedImage >
itk::MRFImageFilter< TInputImage, TClassifiedImage >::typedef ( Concept::SameDimension< InputImageDimension, ClassifiedImageDimension )

This class requires SameDimensionCheck in the form of ( Concept::SameDimension< InputImageDimension, ClassifiedImageDimension > )

Member Data Documentation

template<typename TInputImage , typename TClassifiedImage >
const unsigned int itk::MRFImageFilter< TInputImage, TClassifiedImage >::ClassifiedImageDimension = TClassifiedImage::ImageDimension
static

Labelled Image dimension

Definition at line 192 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
const unsigned int itk::MRFImageFilter< TInputImage, TClassifiedImage >::InputImageDimension = TInputImage::ImageDimension
static
template<typename TInputImage , typename TClassifiedImage >
ClassifierType::Pointer itk::MRFImageFilter< TInputImage, TClassifiedImage >::m_ClassifierPtr
private

Pointer to the classifier to be used for the MRF labelling.

Definition at line 407 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
double* itk::MRFImageFilter< TInputImage, TClassifiedImage >::m_ClassProbability
private

Definition at line 395 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
std::vector< double > itk::MRFImageFilter< TInputImage, TClassifiedImage >::m_DummyVector
private

Definition at line 404 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
int itk::MRFImageFilter< TInputImage, TClassifiedImage >::m_ErrorCounter
private

Definition at line 389 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
double itk::MRFImageFilter< TInputImage, TClassifiedImage >::m_ErrorTolerance
private

Definition at line 393 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
InputImageNeighborhoodRadiusType itk::MRFImageFilter< TInputImage, TClassifiedImage >::m_InputImageNeighborhoodRadius
private
template<typename TInputImage , typename TClassifiedImage >
unsigned int itk::MRFImageFilter< TInputImage, TClassifiedImage >::m_KernelSize
private

Definition at line 387 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
LabelledImageNeighborhoodRadiusType itk::MRFImageFilter< TInputImage, TClassifiedImage >::m_LabelledImageNeighborhoodRadius
private

Definition at line 382 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
LabelStatusImagePointer itk::MRFImageFilter< TInputImage, TClassifiedImage >::m_LabelStatusImage
private

Definition at line 399 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
LabelStatusImageNeighborhoodRadiusType itk::MRFImageFilter< TInputImage, TClassifiedImage >::m_LabelStatusImageNeighborhoodRadius
private

Definition at line 383 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
std::vector< double > itk::MRFImageFilter< TInputImage, TClassifiedImage >::m_MahalanobisDistance
private

Definition at line 403 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
unsigned int itk::MRFImageFilter< TInputImage, TClassifiedImage >::m_MaximumNumberOfIterations
private
template<typename TInputImage , typename TClassifiedImage >
std::vector< double > itk::MRFImageFilter< TInputImage, TClassifiedImage >::m_MRFNeighborhoodWeight
private
template<typename TInputImage , typename TClassifiedImage >
int itk::MRFImageFilter< TInputImage, TClassifiedImage >::m_NeighborhoodSize
private

Definition at line 390 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
std::vector< double > itk::MRFImageFilter< TInputImage, TClassifiedImage >::m_NeighborInfluence
private

Definition at line 402 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
unsigned int itk::MRFImageFilter< TInputImage, TClassifiedImage >::m_NumberOfClasses
private
template<typename TInputImage , typename TClassifiedImage >
unsigned int itk::MRFImageFilter< TInputImage, TClassifiedImage >::m_NumberOfIterations
private

Definition at line 396 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
double itk::MRFImageFilter< TInputImage, TClassifiedImage >::m_SmoothingFactor
private

Definition at line 394 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
StopConditionType itk::MRFImageFilter< TInputImage, TClassifiedImage >::m_StopCondition
private

Definition at line 397 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
int itk::MRFImageFilter< TInputImage, TClassifiedImage >::m_TotalNumberOfPixelsInInputImage
private

Definition at line 392 of file itkMRFImageFilter.h.

template<typename TInputImage , typename TClassifiedImage >
int itk::MRFImageFilter< TInputImage, TClassifiedImage >::m_TotalNumberOfValidPixelsInOutputImage
private

Definition at line 391 of file itkMRFImageFilter.h.


The documentation for this class was generated from the following file: