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

#include <itkMRIBiasFieldCorrectionFilter.h>

+ Inheritance diagram for itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >:
+ Collaboration diagram for itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >:

Detailed Description

template<typename TInputImage, typename TOutputImage, typename TMaskImage>
class itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >

corrects 3D MRI bias field

This class is templated over the type of the input image (TInputImage) and the type of the output image (TOutputImage).

In MRI images, intensity inhomogenieties which are caused by magnetic settings, patients' position, and other factors are not unusual. The main purpose of this filter is to reduce such bias field. To estimate the bias field, we use Legendre polynomials. The 1+1 evolutionary optimizer searches for the best parameters of a Legendre polynomial (bias field estimate) which minimizes the total energy value of each image after bias field is eliminated. The default Legendre polynomial degree is 3.

The correction performs by default a multiplicative bias field correction by first log-transforming the input image. This log transform only works on images with grayscale values bigger than 0. The log-transform can be disabled and the filter computes an additive bias field.

There are three major processes in the whole bias correction scheme: slab identification, inter-slice intensity correction, and actual bias correction process. Users can turn on and off each process within the whole bias correction scheme using SetUsingSlabIdentification(bool, false by default), SetUsingInterSliceIntensityCorrection(bool, true by default), and SetUsingBiasFieldCorrection(bool, true by default) member function.

Only the last process (the actual bias field correction) is implemented in a multiresolution framework (without smoothing). Default is a standard level 2 multiresolution schedule (2 2 2 1 1 1)

The bias field correction method was initially developed and implemented by Martin Styner, Univ. of North Carolina at Chapel Hill, and his colleagues.

The multiresolution pyramid implementation is based on itkMultiTesolutionPyramidImageFilter (without Gaussian smoothing)

For more details. refer to the following articles. "Parametric estimate of intensity inhomogeneities applied to MRI" Martin Styner, Guido Gerig, Christian Brechbuehler, Gabor Szekely, IEEE TRANSACTIONS ON MEDICAL IMAGING; 19(3), pp. 153-165, 2000, (http://www.cs.unc.edu/~styner/docs/tmi00.pdf)

"Evaluation of 2D/3D bias correction with 1+1ES-optimization" Martin Styner, Prof. Dr. G. Gerig (IKT, BIWI, ETH Zuerich), TR-197 (http://www.cs.unc.edu/~styner/docs/StynerTR97.pdf)

Definition at line 225 of file itkMRIBiasFieldCorrectionFilter.h.

Public Types

typedef
MultivariateLegendrePolynomial 
BiasFieldType
 
typedef SmartPointer< const SelfConstPointer
 
typedef EnergyFunctionType::Pointer EnergyFunctionPointer
 
typedef MRIBiasEnergyFunction
< InternalImageType,
ImageMaskType, BiasFieldType
EnergyFunctionType
 
typedef ImageMaskType::Pointer ImageMaskPointer
 
typedef ImageMaskType::RegionType ImageMaskRegionType
 
typedef TMaskImage ImageMaskType
 
typedef TInputImage::IndexType InputImageIndexType
 
typedef TInputImage::PixelType InputImagePixelType
 
typedef TInputImage::Pointer InputImagePointer
 
typedef TInputImage::RegionType InputImageRegionType
 
typedef TInputImage::SizeType InputImageSizeType
 
typedef TInputImage InputImageType
 
typedef MRASlabIdentifier
< InputImageType
MRASlabIdentifierType
 
typedef
Statistics::NormalVariateGenerator 
NormalVariateGeneratorType
 
typedef
OnePlusOneEvolutionaryOptimizer 
OptimizerType
 
typedef TOutputImage::IndexType OutputImageIndexType
 
typedef TOutputImage::PixelType OutputImagePixelType
 
typedef TOutputImage::Pointer OutputImagePointer
 
typedef TOutputImage::RegionType OutputImageRegionType
 
typedef TOutputImage::SizeType OutputImageSizeType
 
typedef TOutputImage OutputImageType
 
typedef SmartPointer< SelfPointer
 
typedef Array2D< unsigned int > ScheduleType
 
typedef
MRIBiasFieldCorrectionFilter 
Self
 
typedef
SlabRegionVectorType::iterator 
SlabRegionVectorIteratorType
 
typedef
MRASlabIdentifierType::SlabRegionVectorType 
SlabRegionVectorType
 
typedef ImageToImageFilter
< TInputImage, TOutputImage > 
Superclass
 
typedef Image< float,
itkGetStaticConstMacro(ImageDimension) > 
InternalImageType
 
typedef
InternalImageType::PixelType 
InternalImagePixelType
 
typedef InternalImageType::Pointer InternalImagePointer
 
typedef
InternalImageType::RegionType 
InternalImageRegionType
 
- Public Types inherited from itk::ImageToImageFilter< TInputImage, TOutputImage >
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< TOutputImage > Superclass
 
- Public Types inherited from itk::ImageSource< TOutputImage >
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 TOutputImage 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

void CorrectImage (BiasFieldType &bias, InputImageRegionType region)
 
void CorrectInterSliceIntensityInhomogeneity (InputImageRegionType region)
 
virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
BiasFieldType EstimateBiasField (InputImageRegionType region, unsigned int degree, int maximumIteration)
 
BiasFieldType::CoefficientArrayType GetEstimatedBiasFieldCoefficients ()
 
virtual const char * GetNameOfClass () const
 
virtual unsigned int GetNumberOfLevels () const
 
virtual double GetOptimizerShrinkFactor () const
 
virtual const ScheduleTypeGetSchedule () const
 
virtual const InputImagePixelTypeGetSlabBackgroundMinimumThreshold () const
 
virtual const unsigned int & GetSlabNumberOfSamples () const
 
virtual const double & GetSlabTolerance () const
 
const unsigned int * GetStartingShrinkFactors () const
 
void Initialize () throw ( ExceptionObject )
 
void IsBiasFieldMultiplicative (bool flag)
 
bool IsBiasFieldMultiplicative ()
 
void SetInitialBiasFieldCoefficients (const BiasFieldType::CoefficientArrayType &coefficients)
 
void SetNumberOfLevels (unsigned int num)
 
virtual void SetOptimizerShrinkFactor (double _arg)
 
void SetSchedule (const ScheduleType &schedule)
 
virtual void SetSlabBackgroundMinimumThreshold (InputImagePixelType _arg)
 
virtual void SetSlabNumberOfSamples (unsigned int _arg)
 
virtual void SetSlabTolerance (double _arg)
 
virtual void SetSlicingDirection (int _arg)
 
void SetStartingShrinkFactors (unsigned int factor)
 
void SetStartingShrinkFactors (unsigned int *factors)
 
void SetTissueClassStatistics (const Array< double > &means, const Array< double > &sigmas) throw ( ExceptionObject )
 
void SetInputMask (ImageMaskType *inputMask)
 
virtual ImageMaskTypeGetModifiableInputMask ()
 
virtual const ImageMaskTypeGetInputMask () const
 
void SetOutputMask (ImageMaskType *outputMask)
 
virtual ImageMaskTypeGetModifiableOutputMask ()
 
virtual const ImageMaskTypeGetOutputMask () const
 
virtual void SetUsingInterSliceIntensityCorrection (bool _arg)
 
virtual const bool & GetUsingInterSliceIntensityCorrection () const
 
virtual void SetUsingSlabIdentification (bool _arg)
 
virtual const bool & GetUsingSlabIdentification () const
 
virtual void SetUsingBiasFieldCorrection (bool _arg)
 
virtual const bool & GetUsingBiasFieldCorrection () const
 
virtual void SetGeneratingOutput (bool _arg)
 
virtual const bool & GetGeneratingOutput () const
 
virtual void SetBiasFieldDegree (int _arg)
 
virtual int GetBiasFieldDegree () const
 
virtual void SetVolumeCorrectionMaximumIteration (int _arg)
 
virtual int GetVolumeCorrectionMaximumIteration () const
 
virtual void SetInterSliceCorrectionMaximumIteration (int _arg)
 
virtual int GetInterSliceCorrectionMaximumIteration () const
 
void SetOptimizerInitialRadius (double initRadius)
 
double GetOptimizerInitialRadius ()
 
virtual void SetOptimizerGrowthFactor (double _arg)
 
virtual double GetOptimizerGrowthFactor () const
 
- Public Member Functions inherited from itk::ImageToImageFilter< TInputImage, TOutputImage >
const InputImageTypeGetInput (void) const
 
const InputImageTypeGetInput (unsigned int idx) const
 
virtual void PopBackInput ()
 
virtual void PopFrontInput ()
 
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< TOutputImage >
OutputImageTypeGetOutput (unsigned int idx)
 
virtual void GraftNthOutput (unsigned int idx, DataObject *output)
 
virtual void GraftOutput (DataObject *output)
 
virtual void GraftOutput (const DataObjectIdentifierType &key, DataObject *output)
 
OutputImageTypeGetOutput (void)
 
const OutputImageTypeGetOutput (void) const
 
virtual
ProcessObject::DataObjectPointer 
MakeOutput (ProcessObject::DataObjectPointerArraySizeType idx) ITK_OVERRIDE
 
- Public Member Functions inherited from itk::ProcessObject
virtual void AbortGenerateDataOff ()
 
virtual void AbortGenerateDataOn ()
 
virtual void EnlargeOutputRequestedRegion (DataObject *)
 
virtual const bool & GetAbortGenerateData () const
 
NameArray GetInputNames () const
 
MultiThreader * GetMultiThreader () const
 
DataObjectPointerArraySizeType GetNumberOfIndexedInputs () const
 
DataObjectPointerArraySizeType GetNumberOfInputs () const
 
DataObjectPointerArraySizeType GetNumberOfOutputs () const
 
virtual
DataObjectPointerArraySizeType 
GetNumberOfValidRequiredInputs () const
 
NameArray GetOutputNames () const
 
virtual const float & GetProgress () const
 
NameArray GetRequiredInputNames () const
 
bool HasInput (const DataObjectIdentifierType &key) const
 
bool HasOutput (const DataObjectIdentifierType &key) const
 
virtual DataObjectPointer MakeOutput (const DataObjectIdentifierType &)
 
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)
 
DataObjectPointerArray GetInputs ()
 
DataObjectPointerArray GetOutputs ()
 
DataObjectPointerArray GetIndexedInputs ()
 
DataObjectPointerArray GetIndexedOutputs ()
 
DataObjectPointerArraySizeType GetNumberOfIndexedOutputs () const
 
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 (void)
 
const MetaDataDictionaryGetMetaDataDictionary (void) 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 ITK_OVERRIDE
 
void RemoveAllObservers ()
 
void RemoveObserver (unsigned long tag)
 
void SetDebug (bool debugFlag) const
 
void SetMetaDataDictionary (const MetaDataDictionary &rhs)
 
virtual void SetReferenceCount (int) ITK_OVERRIDE
 
virtual void UnRegister () const ITK_OVERRIDE
 
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 bool IsScheduleDownwardDivisible (const ScheduleType &schedule)
 
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 ImageDimension = TOutputImage::ImageDimension
 
- Static Public Attributes inherited from itk::ImageToImageFilter< TInputImage, TOutputImage >
static const unsigned int InputImageDimension = TInputImage::ImageDimension
 
static const unsigned int OutputImageDimension = TOutputImage::ImageDimension
 
- Static Public Attributes inherited from itk::ImageSource< TOutputImage >
static const unsigned int OutputImageDimension = TOutputImage::ImageDimension
 

Protected Member Functions

void AdjustSlabRegions (SlabRegionVectorType &slabs, OutputImageRegionType requestedRegion)
 
bool CheckMaskImage (ImageMaskType *mask)
 
template<typename TSource , typename TTarget >
void CopyAndConvertImage (const TSource *source, TTarget *target, typename TTarget::RegionType requestedRegion)
 
void ExpImage (InternalImageType *source, InternalImageType *target)
 
void GenerateData ()
 
void GetBiasFieldSize (InputImageRegionType region, BiasFieldType::DomainSizeType &domainSize)
 
void Log1PImage (InternalImageType *source, InternalImageType *target)
 
 MRIBiasFieldCorrectionFilter ()
 
void PrintSelf (std::ostream &os, Indent indent) const
 
virtual ~MRIBiasFieldCorrectionFilter ()
 
- Protected Member Functions inherited from itk::ImageToImageFilter< TInputImage, TOutputImage >
virtual void CallCopyInputRegionToOutputRegion (OutputImageRegionType &destRegion, const InputImageRegionType &srcRegion)
 
virtual void CallCopyOutputRegionToInputRegion (InputImageRegionType &destRegion, const OutputImageRegionType &srcRegion)
 
virtual void GenerateInputRequestedRegion ()
 
 ImageToImageFilter ()
 
virtual void VerifyInputInformation ()
 
 ~ImageToImageFilter ()
 
void PushBackInput (const DataObject *input)
 
void PushFrontInput (const DataObject *input)
 
- Protected Member Functions inherited from itk::ImageSource< TOutputImage >
virtual void AfterThreadedGenerateData ()
 
virtual void AllocateOutputs ()
 
virtual void BeforeThreadedGenerateData ()
 
virtual const
ImageRegionSplitterBase
GetImageRegionSplitter (void) 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)
 
virtual void CacheInputReleaseDataFlags ()
 
virtual void GenerateOutputInformation ()
 
virtual void GenerateOutputRequestedRegion (DataObject *output)
 
virtual const
DataObjectPointerArraySizeType
GetNumberOfRequiredOutputs () const
 
bool IsIndexedInputName (const DataObjectIdentifierType &) const
 
bool IsIndexedOutputName (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)
 
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 SetNumberOfRequiredOutputs (DataObjectPointerArraySizeType _arg)
 
virtual void SetOutput (const DataObjectIdentifierType &key, DataObject *output)
 
virtual void SetPrimaryInput (DataObject *input)
 
virtual void SetPrimaryOutput (DataObject *output)
 
virtual void VerifyPreconditions ()
 
 ~ProcessObject ()
 
DataObjectGetInput (const DataObjectIdentifierType &key)
 
const DataObjectGetInput (const DataObjectIdentifierType &key) const
 
DataObjectGetInput (DataObjectPointerArraySizeType idx)
 
const DataObjectGetInput (DataObjectPointerArraySizeType idx) const
 
DataObjectGetPrimaryInput ()
 
const DataObjectGetPrimaryInput () const
 
virtual void SetPrimaryInputName (const DataObjectIdentifierType &key)
 
virtual const char * GetPrimaryInputName (void) const
 
virtual void SetNumberOfRequiredInputs (DataObjectPointerArraySizeType)
 
virtual const
DataObjectPointerArraySizeType
GetNumberOfRequiredInputs () const
 
bool AddRequiredInputName (const DataObjectIdentifierType &)
 
bool AddRequiredInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx)
 
bool RemoveRequiredInputName (const DataObjectIdentifierType &)
 
bool IsRequiredInputName (const DataObjectIdentifierType &) const
 
void SetRequiredInputNames (const NameArray &)
 
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 Member Functions

 MRIBiasFieldCorrectionFilter (const Self &)
 
void operator= (const Self &)
 

Private Attributes

BiasFieldType::CoefficientArrayType m_BiasFieldCoefficients
 
int m_BiasFieldDegree
 
bool m_BiasMultiplicative
 
EnergyFunctionPointer m_EnergyFunction
 
BiasFieldType::CoefficientArrayType m_EstimatedBiasFieldCoefficients
 
bool m_GeneratingOutput
 
ImageMaskPointer m_InputMask
 
InternalImagePointer m_InternalInput
 
int m_InterSliceCorrectionMaximumIteration
 
NormalVariateGeneratorType::Pointer m_NormalVariateGenerator
 
unsigned int m_NumberOfLevels
 
double m_OptimizerGrowthFactor
 
double m_OptimizerInitialRadius
 
double m_OptimizerShrinkFactor
 
ImageMaskPointer m_OutputMask
 
ScheduleType m_Schedule
 
InputImagePixelType m_SlabBackgroundMinimumThreshold
 
unsigned int m_SlabNumberOfSamples
 
SlabRegionVectorType m_Slabs
 
double m_SlabTolerance
 
int m_SlicingDirection
 
Array< double > m_TissueClassMeans
 
Array< double > m_TissueClassSigmas
 
bool m_UsingBiasFieldCorrection
 
bool m_UsingInterSliceIntensityCorrection
 
bool m_UsingSlabIdentification
 
int m_VolumeCorrectionMaximumIteration
 

Additional Inherited Members

- Protected Types inherited from itk::ImageToImageFilter< TInputImage, TOutputImage >
typedef
ImageToImageFilterDetail::ImageRegionCopier
< itkGetStaticConstMacro(OutputImageDimension),
itkGetStaticConstMacro(InputImageDimension) > 
InputToOutputRegionCopierType
 
typedef
ImageToImageFilterDetail::ImageRegionCopier
< itkGetStaticConstMacro(InputImageDimension),
itkGetStaticConstMacro(OutputImageDimension) > 
OutputToInputRegionCopierType
 
- Protected Types inherited from itk::LightObject
typedef int InternalReferenceCountType
 
- Static Protected Member Functions inherited from itk::ImageSource< TOutputImage >
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
InternalReferenceCountType m_ReferenceCount
 
SimpleFastMutexLock m_ReferenceCountLock
 

Member Typedef Documentation

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef MultivariateLegendrePolynomial itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::BiasFieldType

Bias field object type definition.

Definition at line 278 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef SmartPointer< const Self > itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::ConstPointer

Definition at line 233 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef EnergyFunctionType::Pointer itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::EnergyFunctionPointer

Definition at line 284 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef MRIBiasEnergyFunction< InternalImageType, ImageMaskType, BiasFieldType > itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::EnergyFunctionType

Energy function type definition.

Definition at line 283 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef ImageMaskType::Pointer itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::ImageMaskPointer

Definition at line 262 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef ImageMaskType::RegionType itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::ImageMaskRegionType

Definition at line 263 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef TMaskImage itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::ImageMaskType

Mask image related type definitions.

Definition at line 261 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef TInputImage::IndexType itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::InputImageIndexType

Definition at line 255 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef TInputImage::PixelType itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::InputImagePixelType

Definition at line 256 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef TInputImage::Pointer itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::InputImagePointer

Definition at line 254 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef TInputImage::RegionType itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::InputImageRegionType

Definition at line 258 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef TInputImage::SizeType itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::InputImageSizeType

Definition at line 257 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef TInputImage itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::InputImageType

Definition at line 253 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef InternalImageType::PixelType itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::InternalImagePixelType

Internal (temporary) image related type definitions.

Definition at line 267 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef InternalImageType::Pointer itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::InternalImagePointer

Internal (temporary) image related type definitions.

Definition at line 268 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef InternalImageType::RegionType itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::InternalImageRegionType

Internal (temporary) image related type definitions.

Definition at line 269 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef Image< float, itkGetStaticConstMacro(ImageDimension) > itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::InternalImageType

Internal (temporary) image related type definitions.

Definition at line 266 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef MRASlabIdentifier< InputImageType > itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::MRASlabIdentifierType

Regions of the MRI slab identifier return.

Definition at line 273 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef Statistics::NormalVariateGenerator itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::NormalVariateGeneratorType

Normal variate Generator Type

Definition at line 287 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef OnePlusOneEvolutionaryOptimizer itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::OptimizerType

Optimizer type definition.

Definition at line 290 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef TOutputImage::IndexType itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::OutputImageIndexType

Definition at line 248 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef TOutputImage::PixelType itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::OutputImagePixelType

Definition at line 249 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef TOutputImage::Pointer itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::OutputImagePointer

Definition at line 247 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef TOutputImage::RegionType itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::OutputImageRegionType

Definition at line 251 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef TOutputImage::SizeType itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::OutputImageSizeType

Definition at line 250 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef TOutputImage itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::OutputImageType

Input and output image related type definitions.

Definition at line 246 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef SmartPointer< Self > itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::Pointer

Definition at line 232 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef Array2D< unsigned int > itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::ScheduleType

ScheduleType typedef support.

Definition at line 293 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef MRIBiasFieldCorrectionFilter itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::Self

Standard class typedefs.

Definition at line 230 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef SlabRegionVectorType::iterator itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SlabRegionVectorIteratorType

Definition at line 275 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef MRASlabIdentifierType::SlabRegionVectorType itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SlabRegionVectorType

Definition at line 274 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
typedef ImageToImageFilter< TInputImage, TOutputImage > itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::Superclass

Definition at line 231 of file itkMRIBiasFieldCorrectionFilter.h.

Constructor & Destructor Documentation

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::MRIBiasFieldCorrectionFilter ( )
protected
template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::~MRIBiasFieldCorrectionFilter ( )
protectedvirtual
template<typename TInputImage , typename TOutputImage , typename TMaskImage >
itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::MRIBiasFieldCorrectionFilter ( const Self )
private

Member Function Documentation

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::AdjustSlabRegions ( SlabRegionVectorType slabs,
OutputImageRegionType  requestedRegion 
)
protected

Find overlapping regions between the slab regions and the output image's requested region. And then replace the original slab regions with the resulting overlapping regions.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
bool itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::CheckMaskImage ( ImageMaskType mask)
protected

Checks if the mask image's dimensionality and size matches with those of the input image

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
template<typename TSource , typename TTarget >
void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::CopyAndConvertImage ( const TSource *  source,
TTarget *  target,
typename TTarget::RegionType  requestedRegion 
)
inlineprotected

Converts pixel type, and copies image data from source to target.

Definition at line 499 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::CorrectImage ( BiasFieldType bias,
InputImageRegionType  region 
)

Correct the internal image using the bias field estimate created by EstimateBiasField() member function and the internal image data that are in the specified region.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::CorrectInterSliceIntensityInhomogeneity ( InputImageRegionType  region)

Internally calls EstimateBiasField() and CorrectImage() member functions for each slice to correct inter-slice intensity inhomogeneities.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual::itk::LightObject::Pointer itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::CreateAnother ( void  ) 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.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
BiasFieldType itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::EstimateBiasField ( InputImageRegionType  region,
unsigned int  degree,
int  maximumIteration 
)

Optimizes the bias field only using the image data that are in the specified region.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::ExpImage ( InternalImageType source,
InternalImageType target 
)
protected

Converts image data from source to target applying std::exp(pixel) - 1 to all pixels.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GenerateData ( )
protectedvirtual

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< TOutputImage >.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual int itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GetBiasFieldDegree ( ) const
virtual

Set/Get the degree of the bias field estimate.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GetBiasFieldSize ( InputImageRegionType  region,
BiasFieldType::DomainSizeType domainSize 
)
protected

Converts ImageRegion type (region) to DomainSize type (std::vector) NOTE: if the size of the last dimension of the image region is one, then the dimension of the resulting domain size will be one less than that of he image region

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
BiasFieldType::CoefficientArrayType itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GetEstimatedBiasFieldCoefficients ( )
inline

Get the result bias field coefficients after the bias field estimation (does not apply to the inter-slice intensity correction)

Definition at line 378 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual const bool& itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GetGeneratingOutput ( ) const
virtual

Set/Gets the flag, If the flag is true, the output image (corrected image) will be created when this filter is updated. default - true

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual const ImageMaskType* itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GetInputMask ( ) const
virtual

Set/Get the input mask image pointer Without this mask, this filter calculates the energy value using all pixels in the input image.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual int itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GetInterSliceCorrectionMaximumIteration ( ) const
virtual

Set/Get the maximum iteration termination condition parameter.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual ImageMaskType* itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GetModifiableInputMask ( )
virtual

Set/Get the input mask image pointer Without this mask, this filter calculates the energy value using all pixels in the input image.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual ImageMaskType* itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GetModifiableOutputMask ( )
virtual

Get/Set the out mask image pointer. Without this mask, this filter corrects every pixel in the input image.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual const char* itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods)

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

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual unsigned int itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GetNumberOfLevels ( ) const
virtual

Get the number of multi-resolution levels.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual double itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GetOptimizerGrowthFactor ( ) const
virtual

Set/Get the search radius grow factor.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
double itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GetOptimizerInitialRadius ( )
inline

Set/Get the initial search radius.

Definition at line 398 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual double itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GetOptimizerShrinkFactor ( ) const
virtual
template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual const ImageMaskType* itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GetOutputMask ( ) const
virtual

Get/Set the out mask image pointer. Without this mask, this filter corrects every pixel in the input image.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual const ScheduleType& itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GetSchedule ( ) const
virtual

Get the multi-resolution schedule.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual const InputImagePixelType& itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GetSlabBackgroundMinimumThreshold ( ) const
virtual
template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual const unsigned int& itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GetSlabNumberOfSamples ( ) const
virtual
template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual const double& itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GetSlabTolerance ( ) const
virtual
template<typename TInputImage , typename TOutputImage , typename TMaskImage >
const unsigned int* itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GetStartingShrinkFactors ( ) const

Get the starting shrink factors

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual const bool& itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GetUsingBiasFieldCorrection ( ) const
virtual

Set/Gets the bias correction flag. If the flag is true, bias field correction runs. This flag sounds odd. But if users want to use only the inter-slice intensity correction without actual bias correction, disabling bias field correction would be an useful option. default - true.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual const bool& itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GetUsingInterSliceIntensityCorrection ( ) const
virtual

Set/Gets the intensity correction flag. if the flag is true, inter-slice intensity correction will be applied before bias field correction. default - true (3D input image), false (2D input image).

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual const bool& itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GetUsingSlabIdentification ( ) const
virtual

Set/Gets the slab correction flag. If the flag is true, inter-slice intensity correction and bias field correction will be performed slab by slab which is identified by the slab identifier. default - false NOTE: if users want to slab identification, all the input image data should be buffered.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual int itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::GetVolumeCorrectionMaximumIteration ( ) const
virtual

Set/Get the maximum iteration termination condition parameter.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::Initialize ( )
throw (ExceptionObject
)

Initializes the energy function object and optimizer objects and creates the internal image object copying the input image data to it. Also, if the bias field is multiplicative, applies logarithm to pixel intensity values, tissue classes' statistics values and the optimizer's initial radius NOTE: If the tissue class statistics values (mean and sigma values) then it will throw exception.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::IsBiasFieldMultiplicative ( bool  flag)
inline

If you set this true, this filter assumes the bias field is multiplicative and internally uses log intensity values for every calculation.

Definition at line 311 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
bool itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::IsBiasFieldMultiplicative ( )
inline

If the bias field is multiplicative, it returns true.

Definition at line 315 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
static bool itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::IsScheduleDownwardDivisible ( const ScheduleType schedule)
static

Test if the schedule is downward divisible. This method returns true if at every level, the shrink factors are divisble by the shrink factors at the next level.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::Log1PImage ( InternalImageType source,
InternalImageType target 
)
protected

Converts image data from source to target applying std::log(pixel + 1) to all pixels. If the source pixel has negative value, it sets the value of the corresponding pixel in the targe image as zero.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
static Pointer itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::New ( )
static

Method for creation through the object factory.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::operator= ( const Self )
private
template<typename TInputImage , typename TOutputImage , typename TMaskImage >
void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protectedvirtual

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, TOutputImage >.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SetBiasFieldDegree ( int  _arg)
virtual

Set/Get the degree of the bias field estimate.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SetGeneratingOutput ( bool  _arg)
virtual

Set/Gets the flag, If the flag is true, the output image (corrected image) will be created when this filter is updated. default - true

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SetInitialBiasFieldCoefficients ( const BiasFieldType::CoefficientArrayType coefficients)
inline

Sets the initial 3D bias field estimate coefficients that will be used for correcting each slab.

Definition at line 370 of file itkMRIBiasFieldCorrectionFilter.h.

References itk::Object::Modified().

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SetInputMask ( ImageMaskType inputMask)

Set/Get the input mask image pointer Without this mask, this filter calculates the energy value using all pixels in the input image.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SetInterSliceCorrectionMaximumIteration ( int  _arg)
virtual

Set/Get the maximum iteration termination condition parameter.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SetNumberOfLevels ( unsigned int  num)

Set the number of multi-resolution levels. The matrix containing the schedule will be resized accordingly. The schedule is populated with default values. At the coarset (0) level, the shrink factors are set 2^(nlevel - 1) for all dimension. These shrink factors are halved for subsequent levels. The number of levels is clamped to a minimum value of 1. All shrink factors are also clamped to a minimum value of 1.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SetOptimizerGrowthFactor ( double  _arg)
virtual

Set/Get the search radius grow factor.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SetOptimizerInitialRadius ( double  initRadius)
inline

Set/Get the initial search radius.

Definition at line 396 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SetOptimizerShrinkFactor ( double  _arg)
virtual

Set/Get the search radius shrink factor.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SetOutputMask ( ImageMaskType outputMask)

Get/Set the out mask image pointer. Without this mask, this filter corrects every pixel in the input image.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SetSchedule ( const ScheduleType schedule)

Set a multi-resolution schedule. The input schedule must have only ImageDimension number of columns and NumberOfLevels number of rows. For each dimension, the shrink factor must be non-increasing with respect to subsequent levels. This function will clamp shrink factors to satisify this condition. All shrink factors less than one will also be clamped to the value of 1.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SetSlabBackgroundMinimumThreshold ( InputImagePixelType  _arg)
virtual
template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SetSlabNumberOfSamples ( unsigned int  _arg)
virtual
template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SetSlabTolerance ( double  _arg)
virtual
template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SetSlicingDirection ( int  _arg)
virtual

Sets the direction of slicing. 0 - x axis, 1 - y axis, 2 - z axis

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SetStartingShrinkFactors ( unsigned int  factor)

Set the starting shrink factor for the coarset (0) resolution level. The schedule is then populated with defaults values obtained by halving the factors at the previous level. All shrink factors are clamped to a minimum value of 1.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SetStartingShrinkFactors ( unsigned int *  factors)
template<typename TInputImage , typename TOutputImage , typename TMaskImage >
void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SetTissueClassStatistics ( const Array< double > &  means,
const Array< double > &  sigmas 
)
throw (ExceptionObject
)

Set the tissue class statistics for energy function initialization If the numbers of elements in the means and the sigmas are not equal it will throw exception

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SetUsingBiasFieldCorrection ( bool  _arg)
virtual

Set/Gets the bias correction flag. If the flag is true, bias field correction runs. This flag sounds odd. But if users want to use only the inter-slice intensity correction without actual bias correction, disabling bias field correction would be an useful option. default - true.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SetUsingInterSliceIntensityCorrection ( bool  _arg)
virtual

Set/Gets the intensity correction flag. if the flag is true, inter-slice intensity correction will be applied before bias field correction. default - true (3D input image), false (2D input image).

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SetUsingSlabIdentification ( bool  _arg)
virtual

Set/Gets the slab correction flag. If the flag is true, inter-slice intensity correction and bias field correction will be performed slab by slab which is identified by the slab identifier. default - false NOTE: if users want to slab identification, all the input image data should be buffered.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
virtual void itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::SetVolumeCorrectionMaximumIteration ( int  _arg)
virtual

Set/Get the maximum iteration termination condition parameter.

Member Data Documentation

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
const unsigned int itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::ImageDimension = TOutputImage::ImageDimension
static

The dimension of the image.

Definition at line 243 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
BiasFieldType::CoefficientArrayType itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_BiasFieldCoefficients
private

Storage for the initial 3D bias field estimate coefficients that will be used for correcting each slab.

Definition at line 583 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
int itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_BiasFieldDegree
private

The degree of the bias field estimate.

Definition at line 573 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
bool itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_BiasMultiplicative
private

Bias Field character if true, multiplicative. if false, additive.

Definition at line 561 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
EnergyFunctionPointer itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_EnergyFunction
private

Energy function object pointer.

Definition at line 540 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
BiasFieldType::CoefficientArrayType itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_EstimatedBiasFieldCoefficients
private

Storage for the resulting 3D bias field estimate coefficients after optimization.

Definition at line 587 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
bool itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_GeneratingOutput
private

Definition at line 567 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
ImageMaskPointer itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_InputMask
private

Input mask image smart pointer.

Definition at line 546 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
InternalImagePointer itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_InternalInput
private

Internal image smart pointer.

Definition at line 552 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
int itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_InterSliceCorrectionMaximumIteration
private

Storage for the optimizer's maximum iteration number.

Definition at line 593 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
NormalVariateGeneratorType::Pointer itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_NormalVariateGenerator
private

Normal variate generator smart pointer

Definition at line 543 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
unsigned int itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_NumberOfLevels
private

The number of levels for the multires schedule

Definition at line 576 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
double itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_OptimizerGrowthFactor
private

Storage for the optimizer's search radius grow factor.

Definition at line 599 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
double itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_OptimizerInitialRadius
private

Storage for the optimizer's initial search radius.

Definition at line 596 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
double itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_OptimizerShrinkFactor
private

Storage for the optimizer's search radius shrink factor.

Definition at line 602 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
ImageMaskPointer itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_OutputMask
private

Output mask image smart pointer.

Definition at line 549 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
ScheduleType itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_Schedule
private

The multires schedule

Definition at line 579 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
InputImagePixelType itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_SlabBackgroundMinimumThreshold
private

Definition at line 570 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
unsigned int itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_SlabNumberOfSamples
private

Definition at line 569 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
SlabRegionVectorType itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_Slabs
private

Storage for the MRI slab identifier return.

Definition at line 555 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
double itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_SlabTolerance
private

Definition at line 571 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
int itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_SlicingDirection
private

[0 - x, 1 - y, 2 - z].

Definition at line 558 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
Array< double > itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_TissueClassMeans
private

Storage for tissue classes' mean values.

Definition at line 605 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
Array< double > itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_TissueClassSigmas
private

Storage for tissue classes' variance values.

Definition at line 608 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
bool itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_UsingBiasFieldCorrection
private

Definition at line 566 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
bool itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_UsingInterSliceIntensityCorrection
private

operation selection flags.

Definition at line 564 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
bool itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_UsingSlabIdentification
private

Definition at line 565 of file itkMRIBiasFieldCorrectionFilter.h.

template<typename TInputImage , typename TOutputImage , typename TMaskImage >
int itk::MRIBiasFieldCorrectionFilter< TInputImage, TOutputImage, TMaskImage >::m_VolumeCorrectionMaximumIteration
private

Storage for the optimizer's maximum iteration number.

Definition at line 590 of file itkMRIBiasFieldCorrectionFilter.h.


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